ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

关于SOCKET编程中“烫烫烫...”的问题

2022-10-11 15:40:54  阅读:236  来源: 互联网

标签:socket编程


近几日一直在学习SOCKET通信,关于网络编程这块儿一是空白。学习的过程中在网上找了一段源码,据说是孙鑫老师教程里的。新建一个工程,运行源码一切似乎很正常。于是自己改了一下程序,再次运行发现客户端第一次接收到数据时一直显示”烫烫烫“的乱码。经过网上查找资料,多次测试,发现有以下几种原因: 1、检查客户端与服务器端的端口是否一致。端口不一致时服务器端可能出错 2、检查程序逻辑。我就翻了这种不能再傻逼的错误。把程序改成了这样

SOCKET sockConn = accept(sockSrv, (SOCKADDR*)&addrClient, &len);
char sendBuf[100];
send(sockConn, sendBuf, strlen(sendBuf) + 1, 0);
char recvBuf[100];
recv(sockConn, recvBuf, 100, 0);
printf("%s
", recvBuf);
sprintf(sendBuf, "Welcome %s to http://www.sunxin.org",
inet_ntoa(addrClient.sin_addr));
closesocket(sockConn);

由于发送缓冲区刚发送前没有数据,所以客户端接收到的为null,于是就显示“烫烫烫“ 只需要把

sprintf(sendBuf, "Welcome %s to my site",
inet_ntoa(addrClient.sin_addr));

移到send函数之前,问题即解决。 3、网上很多人说是由于缓冲区未初始化,检测不到结束符,导致访问越界。但是我在对缓冲区都初始化后,问题仍然没有解决。 4、电脑可能真的太“烫”了。哈哈哈

标签:socket编程
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有