- 论坛徽章:
- 0
|
请教高手们一个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)
|
|