第一范文网 - 专业文章范例文档资料分享平台

windows环境下C语言多线程实现网络编程,多人聊天室

来源:用户分享 时间:2025/5/28 23:47:43 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

#include #include \

INT32 del_Element( LNode *pHead, SOCKET sClient ) { INT32 FuncFlag = 0; LNode *p = NULL; LNode *q =NULL; INT32 i32I = 0; if ((NULL == pHead ) || (sClient == NULL)) { FuncFlag = -1; } else { p = pHead->pNext; q = pHead; while (p != NULL) { if ((p->sClient != sClient)) { q = q->pNext; p = p->pNext; } else { q->pNext = p->pNext; free(p); break; } } FuncFlag = 1; } return FuncFlag; }

客户端

#include #include #include

#pragma comment(lib,\#define IP_ADDRESS \#define M_MAX 1000 #define T_MAX 100 #define EXIT -2

DWORD WINAPI tThread(LPVOID lpParameter) { SOCKET sock = (SOCKET)lpParameter; int ret = 0; char Date_Buffer[M_MAX]; while (1) { ret = recv(sock, Date_Buffer, M_MAX, 0); printf(\接收到消息 \\n\\t\\t\\t\\t \ if(!strcmp(Date_Buffer,\ { ret = -1; } if(ret > 0) { Date_Buffer[ret] = 0x00; printf(\ printf(\ } else { printf(\一个客户端已经断开连接!\\n\ break; } } return 0; }

int main(int argc, char* argv[]) { SOCKET sclient;

struct sockaddr_in serAddr; char sendData[M_MAX] = \ char recData[M_MAX] = \ int ret, i = 1; HANDLE Recv_Thread; /* 初始化WSA */ WSADATA data; WORD sockVersion = MAKEWORD(2,2); if(WSAStartup(sockVersion, &data) != 0) { return 0; } //创建套接字 sclient = socket(AF_INET, SOCK_STREAM, 0); if(sclient == INVALID_SOCKET) { printf(\ return 0; } /* 绑定IP和端口 */ serAddr.sin_family = AF_INET; serAddr.sin_port = htons(8888); serAddr.sin_addr.S_un.S_addr = inet_addr(IP_ADDRESS); /* 连接服务器 */ if (connect(sclient, (struct sockaddr *)&serAddr, sizeof(serAddr)) == SOCKET_ERROR) { printf(\ return 0; } else { printf(\已经与服务器连接!\\n\\n\ } Recv_Thread = CreateThread(NULL, 0, tThread, (LPVOID)sclient, 0, NULL); if (Recv_Thread == NULL) { printf(\

}

return 0; }

while (1) {

/* 发送消息 */

printf(\发送消息\\n\ gets(sendData);

send(sclient, sendData, strlen(sendData), 0); if (!strcmp(sendData, \ { ret = EXIT; closesocket(sclient); return 0; } }

WaitForSingleObject(Recv_Thread, INFINITE); CloseHandle(Recv_Thread);

closesocket(sclient); WSACleanup(); return 0;

windows环境下C语言多线程实现网络编程,多人聊天室.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c361xy4aiv60a6ri16zqy_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top