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

基于Socket的网络聊天程序设计报告

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

{ sprintf(recvBuf, \ %s\

(addrClient.sin_addr), tempBuf); printf(\

printf(\ \ gets(sendBuf);

sendto(sockSrv, sendBuf, strlen(sendBuf) + 1, 0, (sockaddr*) &addrClient, len); } else // 若接收到'q',则退出聊天 { printf(\ inet_ntoa(addrClient.sin_addr)); sendto(sockSrv, \&addrClient, len); break; } }

closesocket(sockSrv); WSACleanup(); }

客户端代码:

#include

#include

void main() {

WORD wVersionRequested; WSADATA wsaData; int err;

wVersionRequested = MAKEWORD(1, 1);

err = WSAStartup(wVersionRequested, &wsaData); if (err != 0) { return; }

if(LOBYTE(wsaData.wVersion) != 1 || HIBYTE(wsaData.wVersion) != 1 ) {

WSACleanup(); return; }

SOCKET sockClient = socket(AF_INET, SOCK_DGRAM, 0);

SOCKADDR_IN addrSrv;

addrSrv.sin_addr.S_un.S_addr = inet_addr(\ //htonl htons inet_addr inet_ntoa addrSrv.sin_family = AF_INET;

addrSrv.sin_port = htons(6666); //设置同样的端口号6666

char sendBuf[100]; char tempBuf[200]; char recvBuf[100];

int len = sizeof(sockaddr);

while(1) {

printf(\ \ gets(sendBuf);

sendto(sockClient, sendBuf, strlen(sendBuf) + 1, 0, (sockaddr*) &addrSrv, len);

recvfrom(sockClient, tempBuf, strlen(tempBuf), 0, (sockaddr*) &addrSrv, &len);

if('q' != tempBuf[0]) { sprintf(recvBuf, \ %s\(addrSrv.sin_addr), tempBuf); printf(\ }

else // 若接收到'q',则退出聊天 { printf(\ sendto(sockClient, \&addrSrv, len); break; } }

closesocket(sockClient); WSACleanup(); }

运行结果截图:

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