日期:2014-05-18  浏览次数:20956 次

一台机器测试服务器端和多个客户端时,多个客户端向服务器发送不同数据,在服务器端数据被覆盖
我的服务器端程序用的多线程,同时还用hashtable把socket都对应的保存了,可是服务器在接受数据时好像是一个线程似的,发送的数据总是被后面的数据覆盖,似乎服务器只是在和一个客户端打交道一样,是不是由于我是在一台机器上测试多个客户端,那么多个客户端的socket就不能区别了呢?我看的别人说好像Socket是用IP和端口来区别的,是这样的码?

------解决方案--------------------
Socket是用IP和端口来区别
发送的数据总是被后面的数据覆盖检查你对临界区的同步和互斥是不是有问题。
------解决方案--------------------
你从socket中读数据是不是读到一个buffer里面了?
------解决方案--------------------
具体看看你的代码。。
------解决方案--------------------
你的服务器代码贴上来看看
------解决方案--------------------
变量最好定义在方法里。