1.可能是在获取客户端的ip和端口时,处理出现问题,导致无法正确发送到客户端。
2.客户端是否使用固定的端口来接收服务器信息,或服务器是否正确发送到客户端的相应的端口。
3.通过上面分析,最大可能是在处理端口出现问题,请重新检查。
4.实在不行,最好使用抛出异常方法来捕获错误消息,或是通过一步一步调试分析数据发送过程。
你的接收端有没有放在循环或者线程里反复接收?有没有设置同步,如果没设置同步的话就不是没收到,而是收的速度太快了,数据混乱了。既然说了已经能接收到一行消息了,端口应该是没问题的,因为端口问题主要发生在绑定阶段,既然能接收到,说明绑定没问题。最大的问题应该就是消息同步问题,可以用一收一发的方式,接收放到if里,因为当recv的返回值大于0(就是直接if(recv(...))时),再发送下一条消息
通过系统调用的函数可以访问,比如:int read(int socketfd,char *buffer,size_t size) ; int write(int socketfd,char *buffer,size_t size); 这是两个读取数据和写入数据的函数原型(具体的型参名字忘记了,不过型参类型是正确的)。网上有个聊天程序的源代码,你可以看看,希望对你有帮助。
检查你的程序是否正确使用了建立连接后生成的,代表这个连接的唯一socket对象。