⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 talkc.c

📁 基于Linux操作系统的网络编程
💻 C
字号:
#include"talk.h"#include<signal.h>#include<ctype.h>int init(void){	char addr[MAX_LINE];	int port = 0;	int sockfd = -1;	FILE *fd = NULL;	struct sockaddr_in serv_addr;		fd=fopen("config","r");	fgets(addr, MAX_LINE, fd);	fscanf(fd, "%d", &port);	fclose(fd);	if (addr[strlen(addr) - 1] == '\n') 		addr[strlen(addr) - 1] = '\0';//	printf("get server ip: %s\n", addr);//	printf("get server port: %d\n", port);	bzero((char*)&serv_addr,sizeof(serv_addr));	serv_addr.sin_family = AF_INET;	serv_addr.sin_addr.s_addr=inet_addr(addr);	serv_addr.sin_port = htons(port);		if((sockfd=socket(AF_INET,SOCK_STREAM,0))<0){		printf("client:can't open stream socker.\n");		fflush(stdout);		return(0);	}		if(connect(sockfd,(struct sockaddr*)&serv_addr,sizeof(serv_addr))<0){		printf("client:can't connect to server\n");		fflush(stdout);		return(0);	}		return(sockfd);}void add_socket(fd_set *sockset, int sockfd){	FD_ZERO(sockset);	FD_SET(sockfd, sockset);	FD_SET(0, sockset);}int main(void){	int sockfd = -1;	int status = -1;	char str[MAX_LINE];	char name[MAX_NAME];	fd_set sockset;	sockfd= init();		if(sockfd <= 0){		printf("init client socket error.\n");		fflush(stdout);		exit(1);	}		add_socket(&sockset,sockfd);	fprintf(stdout,"Please input your name:");	fscanf(stdin, "%s", name);	strcpy(str, "/");	strcat(str, name);	write(sockfd, str, strlen(str));		while(1){		select(sockfd + 1, &sockset, NULL, NULL, NULL);		if (FD_ISSET(sockfd, &sockset)) {			status = read(sockfd, str, MAX_LINE);			if(status == 0)				exit(0);			str[status] = '\0';			printf("%s", str);			fflush(stdout);		}				if (FD_ISSET(0, &sockset)) {			status = read(0, str, MAX_LINE);			str[status] = '\0';			if (str[0] == 'q') {				sprintf(str, "%s leave the room.\n", name);				write(sockfd, str, strlen(str));				close(sockfd);				exit(0);			}			if (write(sockfd, str, strlen(str)) != strlen(str)) {				printf("Wirte error\n");				exit(0);			}		}		add_socket(&sockset, sockfd);	}	return 1;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -