新手刚刚接触这个,建立的是控制台的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了...相关推荐

  1. C#网络编程,多个客户端连接服务器端并发送消息

    最近学习进度到了C#网络编程,在学习这一章节的知识点,写了一些小demo. 此次发表的为服务器监听端口,和多个客户端连接,获取多个客户端发来的消息. 服务器端代码: using System.Net; ...

  2. java socket发送定长报文_java使用Socket类接收和发送数据

    网络应用分为客户端和服务端两部分,而Socket类是负责处理客户端通信的Java类.通过这个类可以连接到指定IP或域名的服务器上,并且可以和服务器互相发送和接受数据.在本文及后面的数篇文章中将详细讨论 ...

  3. C# Socket服务器及多客户端连接应用例程

    服务端代码[控制台示例] static List<Socket> Sockets = new List<Socket>();static void Main(string[] ...

  4. raw socket java_记一次蛋疼的Raw socket发送经历。附:Raw socket编程总结

    最近在做信息安全导论的实验,实验很简单,就是实现一个ping程序,能够扫描主机是否打开的情况,但是,我也就纳了闷了,每次有个不易发现的bug(可能由于自己知识有限造成的),都得让我碰上,并且还得为这个 ...

  5. python socket发送16进制数据_python socket以16进制的数据进行传递与解析

    参考:http://m.blog.csdn.net/blog/JasonQue/8256424 具体的struct模块的解释可以参照上面的链接. struct.pack也就是将数据按照二进制的格式进行 ...

  6. c语言将数据写入文件后乱码_c语言,数据能写入文件,但是从文件读取数据的时候,出现了乱码,如下代码,求解答...

    //写入数据代码#include#defineSIZE2typedefstructstu1//学生信息表{charname[10];intnum;intage;charaddr[15];}studen ...

  7. c语言两个变量相乘出现乱码,C语言,矩阵的乘法运算程序,输出一堆乱码,求大神看看哪里错了。。...

    满意答案 12345678910111213141516171819202122232425262728#includevoid main(){    int a[20][20],i,j,k,b[20 ...

  8. c语言将数据写入文件后乱码_C语言 文件写入输出。文件载入后输出是乱码,纠结啊!...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 void save1() //将工具的基本信息保存至文件:"工具基本信息.file" { FILE*fp; //定义fp是一个指向FI ...

  9. c语言将数据写入文件后乱码_C语言中写入文件的字符数组为乱码,但整形数据却正常!!!...

    在TC中~#include#include#include#include#includecharstr[10];staticcharstr2[10]="1234";structs ...

最新文章

  1. view5.3登录桌面提示当前可用桌面资源不足
  2. 基于图像的三维物体重建:在深度学习时代的最新技术和趋势综述之性能比较和未来研究方向...
  3. c#排序算法(待续)
  4. Error:Execution failed for task ':dexDebug'
  5. 站点CSS样式不起作用,或仅仅有一部分起作用?随手记
  6. 【算法学习笔记】85.破环为链 序列DP 松弛+代价 SJTU OJ 1073 能量项链
  7. wireshark linux版本_Wireshark大法-WiFi6无线抓包
  8. powershell自动化操作AD域、Exchange邮箱系列(5)——AD模块加载与命令一览
  9. 计算机基础(四):C语言字符串处理文件保存
  10. 拓端tecdat|R语言ARIMA、GARCH 和 VAR模型估计、预测ts 和 xts格式时间序列
  11. 支持java浏览器_如何为浏览器安装支持JAVA的插件
  12. perl语言中数组初始化为空和undef的不同
  13. 哈理工OJ-2277-喝喝
  14. oracle常用数据字典 表,Oracle数据库中常用的数据字典表和视图
  15. Android 开发环境搭建
  16. 自制力宛若受到控制的火焰
  17. 台式电脑耳麦合一接线方式
  18. 团队协作一、onlyoffice协同开发使用
  19. python入门(六)——python数据容器
  20. 需求分析的基础知识点(自己的理解)

热门文章

  1. 数据库设计范式实例解析
  2. 单片机编程遇到'DATA' SEGMENT TOO LARGE怎么解决?
  3. python基本输入输出函数有_新手学Python,输入输出函数、赋值语句常见5个错误,弄懂即过关...
  4. Snuke Festival(二分法)
  5. JQuery:多张图片的淡入淡出效果。
  6. 常用公差配合表图_涨知识!常用的机械测量工具,你都知道吗?
  7. 方向梯度直方图(Histogram Of Gradient)详解
  8. cmake / CMAKE _ * _ OUTPUT_DIRECTORY 说明
  9. 数据结构与算法 / 冒泡排序最坏情况下的时间复杂度解析
  10. 全志 修改485转CAN串口回显 Patch