linux c socket 客户端循环十次向服务器发送数据(tcp连接),为啥只能接受第一次的?求代码

[复制链接]
查看11 | 回复3 | 2018-3-20 11:37:28 | 显示全部楼层 |阅读模式
客户端实现的功能是发送一段字符串 然后从服务器那接受服务器反馈的字符串。
服务器端是接受客户端的字符串然后向客户端发送反馈接受成功的字符串。
要求是客户端不停的向服务器端发送,服务器端不停的接受和反馈。
现在就是我自己写了一段代码,循环10次发送 但是只能接受到服务器端一条信息。
求高人能否给我完整代码。貌似要用到多线程的互锁机制。本人初学者。
分数大大的给

回复

使用道具 举报

千问 | 2018-3-20 11:37:28 | 显示全部楼层
只是做这些动作的话不需要多线程找了下以前写的 改成了你说的10次发送client.c:#include#include#include#include#include#include#includeint main(int argc,char **argv){char wbuf[] = "hello server";char rbuf[128];int i;int sock;struct sockaddr_inserver = {0};stru...
回复

使用道具 举报

千问 | 2018-3-20 11:37:28 | 显示全部楼层
你想实现相互通讯的话,必须要起线程或者进程。线程比较麻烦,建议先研究进程吧。server收到服务端链接后,fork()一个进程,该进程对这一个客户端进行服务。一般咱们都是堵塞的收发数据,都是服务端fork()一个进程后,调用读read操作,如收到数据(客户端请求),给予反馈,向客户端send数据。客户端成功链接后,发送数据,然后等待反馈。只能一个收,收到后...
回复

使用道具 举报

千问 | 2018-3-20 11:37:28 | 显示全部楼层
你尝试下客户端发送的10次之间加入间隔;看看下效果再说...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行