通过TCP协议以及多线程实现聊天(待深究版)
如下代码可以实现客户端的相互之间的通信,但是仍有小问题。至于具体想实现的功能,就自己添加吧。
问题描述:在执行服务器与客户端的时候,如果对客户端强制退出(ctrl+c),则会导致所有的客户端与服务器均退出;如果对服务器进行强制退出(ctrl+c),则会导致客户端出现接收的死循环。
排除强制退出的问题,程序可以实现基本的聊天功能。
小提示:
(1)在运行本程序前,先改变ip地址为192.168.1.66。
(2)gcc编译时,后面需要加-lpthread
代码如下:
服务器端:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<pthread.h>
#include<unistd.h>
#define PORT 8000
#define SIZE 10
char *ip = "192.168.1.66";
int fd[SIZE];
void *clienthandler(void* argi);
int main()
{
int sockfd;
int ret,i=0;
pthread_t tid;
struct sockaddr_in server_addr;
struct sockaddr_in client_addr;