c语言接受socket发送尾部有乱码,C语言socket编程,服务器和一个客户端连接时,服务器能正常收到信息,2个以上就出现BUG了...
新手刚刚接触这个,建立的是控制台的32位程序。
程序思路服务器监听,每次连接,创建一个进程,全权处理该客户端的通信(不用考虑资源浪费问题)。
服务器监听部分:
while (true)
{
sockConn = accept(sockSrv, (SOCKADDR*)&addrClient, &len);//每次有连接生成SOCKET
mj.sk = sockConn;//mj只是定义的一个结构变量,用来传递2个参数给新进程
mj.numb = n;//
_beginthread(process, 0, &mj);//生成新进程并且传递SOCKET给新线程
n++;//统计进程数,也就是客户端的序号
}
处理部分:
void process(void *lp)
{
Soksk *p = (Soksk*)lp;
SKT[p->numb].sk = p->sk;//SKT是全局变量用来保存不同客户端的SOCEKT,
char rcbf[50];
send(p->sk, "您已成功连接", 13, 0);//告诉客户端已经连接
while (1){
for (int i = 0; i < 50; i++) rcbf[i] = '\0';
if(recv(p->sk, rcbf, 50, 0)!=SOCKET_ERROR);//接受客户端消息,目测问题最大的地方、
printf("本次收到%s,from socket=%d",rcbf,p->sk);
}
客户端就是简单的发送了
while(1){
gets(sdbuf);
send(sockClient,sdbuf,49,0);
}
}
故障表现
1,就是一个客户端的时候发一个消息,RECV收到2次,另一个乱码,但至少不会丢失,每次都能收到。
2,2个以上客户端时出现,经常出现A发送不能收到,B发送一下,B的收到,A的也收到了,但B不发,A的消息永远不会收到。有时候B发了A的也收不到,然后乱按几下可能就是B的收不到,A的能收到了。
我的问题是:
1丶如何解决以上故障,再帮忙改个程序(本人用的VS2013)
2丶是因为客户端只有一个接受端口,或者缓冲区?影响了数据传输?,不应该啊,
3丶A发送消息服务器没收到。RECV依旧在阻塞状态,B一发送怎么A给收到了,不同线程下缓存文件不是不共享么,为什么2个客户端就会出现这个情况。
4丶希望越详细越好。
君之大恩,不胜感激!
c语言接受socket发送尾部有乱码,C语言socket编程,服务器和一个客户端连接时,服务器能正常收到信息,2个以上就出现BUG了...相关推荐
- C#网络编程,多个客户端连接服务器端并发送消息
最近学习进度到了C#网络编程,在学习这一章节的知识点,写了一些小demo. 此次发表的为服务器监听端口,和多个客户端连接,获取多个客户端发来的消息. 服务器端代码: using System.Net; ...
- java socket发送定长报文_java使用Socket类接收和发送数据
网络应用分为客户端和服务端两部分,而Socket类是负责处理客户端通信的Java类.通过这个类可以连接到指定IP或域名的服务器上,并且可以和服务器互相发送和接受数据.在本文及后面的数篇文章中将详细讨论 ...
- C# Socket服务器及多客户端连接应用例程
服务端代码[控制台示例] static List<Socket> Sockets = new List<Socket>();static void Main(string[] ...
- raw socket java_记一次蛋疼的Raw socket发送经历。附:Raw socket编程总结
最近在做信息安全导论的实验,实验很简单,就是实现一个ping程序,能够扫描主机是否打开的情况,但是,我也就纳了闷了,每次有个不易发现的bug(可能由于自己知识有限造成的),都得让我碰上,并且还得为这个 ...
- python socket发送16进制数据_python socket以16进制的数据进行传递与解析
参考:http://m.blog.csdn.net/blog/JasonQue/8256424 具体的struct模块的解释可以参照上面的链接. struct.pack也就是将数据按照二进制的格式进行 ...
- c语言将数据写入文件后乱码_c语言,数据能写入文件,但是从文件读取数据的时候,出现了乱码,如下代码,求解答...
//写入数据代码#include#defineSIZE2typedefstructstu1//学生信息表{charname[10];intnum;intage;charaddr[15];}studen ...
- c语言两个变量相乘出现乱码,C语言,矩阵的乘法运算程序,输出一堆乱码,求大神看看哪里错了。。...
满意答案 12345678910111213141516171819202122232425262728#includevoid main(){ int a[20][20],i,j,k,b[20 ...
- c语言将数据写入文件后乱码_C语言 文件写入输出。文件载入后输出是乱码,纠结啊!...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 void save1() //将工具的基本信息保存至文件:"工具基本信息.file" { FILE*fp; //定义fp是一个指向FI ...
- c语言将数据写入文件后乱码_C语言中写入文件的字符数组为乱码,但整形数据却正常!!!...
在TC中~#include#include#include#include#includecharstr[10];staticcharstr2[10]="1234";structs ...
最新文章
- view5.3登录桌面提示当前可用桌面资源不足
- 基于图像的三维物体重建:在深度学习时代的最新技术和趋势综述之性能比较和未来研究方向...
- c#排序算法(待续)
- Error:Execution failed for task ':dexDebug'
- 站点CSS样式不起作用,或仅仅有一部分起作用?随手记
- 【算法学习笔记】85.破环为链 序列DP 松弛+代价 SJTU OJ 1073 能量项链
- wireshark linux版本_Wireshark大法-WiFi6无线抓包
- powershell自动化操作AD域、Exchange邮箱系列(5)——AD模块加载与命令一览
- 计算机基础(四):C语言字符串处理文件保存
- 拓端tecdat|R语言ARIMA、GARCH 和 VAR模型估计、预测ts 和 xts格式时间序列
- 支持java浏览器_如何为浏览器安装支持JAVA的插件
- perl语言中数组初始化为空和undef的不同
- 哈理工OJ-2277-喝喝
- oracle常用数据字典 表,Oracle数据库中常用的数据字典表和视图
- Android 开发环境搭建
- 自制力宛若受到控制的火焰
- 台式电脑耳麦合一接线方式
- 团队协作一、onlyoffice协同开发使用
- python入门(六)——python数据容器
- 需求分析的基础知识点(自己的理解)
热门文章
- 数据库设计范式实例解析
- 单片机编程遇到'DATA' SEGMENT TOO LARGE怎么解决?
- python基本输入输出函数有_新手学Python,输入输出函数、赋值语句常见5个错误,弄懂即过关...
- Snuke Festival(二分法)
- JQuery:多张图片的淡入淡出效果。
- 常用公差配合表图_涨知识!常用的机械测量工具,你都知道吗?
- 方向梯度直方图(Histogram Of Gradient)详解
- cmake / CMAKE _ * _ OUTPUT_DIRECTORY 说明
- 数据结构与算法 / 冒泡排序最坏情况下的时间复杂度解析
- 全志 修改485转CAN串口回显 Patch