免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2908 | 回复: 0
打印 上一主题 下一主题

Linux TCP通信问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-07-13 10:08 |只看该作者 |倒序浏览
请教高手们一个TCP通信问题:

server端:PC windows TCPIP助手
client端:虚拟机 Linux redhat

现象:TCP连接建立成功,client端可以发送数据都server端,但是server端口不能发送数据给client端口。

程序一直阻塞在while循环里面 nbytes = read(sockfd,buffer,1024);奇怪的是server端连续发送1K个数据,程序突然显示出来所有的数据。也就是说server端必须发够1024字节函数read才释放。按道理来说 read函数应该读到几个数据就返回几个数据,不会堵塞在read处。

程序代码本身应该没有什么问题,我是复制的网上的程序代码。

问题是不是出在socket设置那里,socket buffer是不是必须满足1024个字节才触发中断?

多谢指教啊!


图片为server端:PC windows TCPIP助手

程序源代码如下:

#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <netdb.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>

#define portnumber 3333

int main(int argc, char *argv[])
{
socket问题1.JPG (38.97 KB)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP