linux下,socket服务器和客户端TCP方式建立了连接,如何使它们之间相互发送消息?

我的写的程序建立连接后,服务器只能接受客户端一行消息?服务器不能向客户端发送消息。... 我的写的程序建立连接后,服务器只能接受客户端一行消息?服务器不能向客户端发送消息。 展开
 我来答
花胶之家
推荐于2017-10-01 · TA获得超过250个赞
知道小有建树答主
回答量:215
采纳率:100%
帮助的人:60万
展开全部
1.可能是在获取客户端的ip和端口时,处理出现问题,导致无法正确发送到客户端。
2.客户端是否使用固定的端口来接收服务器信息,或服务器是否正确发送到客户端的相应的端口。
3.通过上面分析,最大可能是在处理端口出现问题,请重新检查。
4.实在不行,最好使用抛出异常方法来捕获错误消息,或是通过一步一步调试分析数据发送过程。
Storm代理
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto... 点击进入详情页
本回答由Storm代理提供
OliverXu
2012-10-09 · TA获得超过841个赞
知道小有建树答主
回答量:610
采纳率:0%
帮助的人:419万
展开全部
你的接收端有没有放在循环或者线程里反复接收?有没有设置同步,如果没设置同步的话就不是没收到,而是收的速度太快了,数据混乱了。既然说了已经能接收到一行消息了,端口应该是没问题的,因为端口问题主要发生在绑定阶段,既然能接收到,说明绑定没问题。最大的问题应该就是消息同步问题,可以用一收一发的方式,接收放到if里,因为当recv的返回值大于0(就是直接if(recv(...))时),再发送下一条消息
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
陈行1123
2012-10-09
知道答主
回答量:14
采纳率:0%
帮助的人:4.8万
展开全部
通过系统调用的函数可以访问,比如:int read(int socketfd,char *buffer,size_t size) ; int write(int socketfd,char *buffer,size_t size); 这是两个读取数据和写入数据的函数原型(具体的型参名字忘记了,不过型参类型是正确的)。网上有个聊天程序的源代码,你可以看看,希望对你有帮助。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鬼火狼烟
2012-10-09 · TA获得超过6333个赞
知道大有可为答主
回答量:2275
采纳率:50%
帮助的人:2708万
展开全部
检查你的程序是否正确使用了建立连接后生成的,代表这个连接的唯一socket对象。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式