通过TCP协议以及多线程实现聊天(待深究版)

本文介绍了一个使用TCP协议和多线程构建的聊天应用,虽然存在客户端强制退出导致所有连接关闭及服务器退出引起客户端接收死循环的问题,但基本的聊天功能得以实现。在运行代码前需将IP地址改为192.168.1.66,并在GCC编译时链接-pthread库。
摘要由CSDN通过智能技术生成

通过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;

	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值