当前位置: 技术问答>linux和unix
大家看看我的程序,谢谢(80),先给20,解决后再给60
来源: 互联网 发布时间:2016-01-23
本文导语: 下面是小弟写的一个SOCKET程序,但是假如通过windows下的客户端连接他,并发送数据,它可以显示有客户端连接进来,但无法收到客户端发来的数据.怎么会事.谢谢大家. #include #include #include #include #include #include #incl...
下面是小弟写的一个SOCKET程序,但是假如通过windows下的客户端连接他,并发送数据,它可以显示有客户端连接进来,但无法收到客户端发来的数据.怎么会事.谢谢大家.
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define SA struct sockaddr
#define MAXCLI 20
#define MAXLINE 4096 /* max text line length */
#define LISTENQ 1024 /* 2nd argument to listen() */
void sig_chld(int signo)
{
pid_t pid;
int stat;
while((pid = waitpid(-1,&stat,WNOHANG))>0)
printf("chile %d terminatedn",pid);
return;
}
void myWork(int sockfd )
{
ssize_t n=0;
char buf[1025];
fd_set rset;
struct timeval timeout;
timeout.tv_sec=2;
timeout.tv_usec=0;
bzero(&buf,sizeof(buf));
printf("i am in myWork");
again:
while((n=read(sockfd,buf,1024))>0)
{
printf("[%d] the message is: %s",getpid(),buf);
bzero(&buf,sizeof(buf));
//write(sockfd,"hello client1n",sizeof("hello client1n"));
}
if(n
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define SA struct sockaddr
#define MAXCLI 20
#define MAXLINE 4096 /* max text line length */
#define LISTENQ 1024 /* 2nd argument to listen() */
void sig_chld(int signo)
{
pid_t pid;
int stat;
while((pid = waitpid(-1,&stat,WNOHANG))>0)
printf("chile %d terminatedn",pid);
return;
}
void myWork(int sockfd )
{
ssize_t n=0;
char buf[1025];
fd_set rset;
struct timeval timeout;
timeout.tv_sec=2;
timeout.tv_usec=0;
bzero(&buf,sizeof(buf));
printf("i am in myWork");
again:
while((n=read(sockfd,buf,1024))>0)
{
printf("[%d] the message is: %s",getpid(),buf);
bzero(&buf,sizeof(buf));
//write(sockfd,"hello client1n",sizeof("hello client1n"));
}
if(n