- 论坛徽章:
- 0
|
<求助>简单linux socket程序,服务器write客户端read,不能成功!-2
这是服务器端程序
#include "mysocketdef.h"
int my_echo_str(int sockfd);
int my_sendData(int connfd);
int main(int argc, char** argv)
{
int listenfd, connfd;
struct sockaddr_in cliaddr, servaddr;
int clilen;
pid_t childpid ;
int ret;
char cliaddrstr[32] ={0};
listenfd = socket( AF_INET, SOCK_STREAM, 0);
if( listenfd < 0 )
{
printf("create socket failed!,ret=%d\r\n", listenfd);
return 1;
}
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(SERV_PORT);
ret = bind( listenfd, (struct sockaddr *)&servaddr, sizeof(servaddr));
if( ret < 0 )
{
printf("bind failed !ret=%d\r\n", ret);
return 1;
}
ret = listen(listenfd, MAX_LISTEN_NUM);
if( ret < 0 )
{
printf("listen failed! ret = %d\r\n", ret );
return 1;
}
while(1)
{
clilen = sizeof(cliaddr);
connfd = accept(listenfd, (struct sockaddr *)&cliaddr, &clilen);
if( connfd < 0 )
{
printf("socket accept failed !ret =%d\r\n", connfd);
return 1;
}
printf("server get connect from %s\r\n", inet_ntop(AF_INET, &cliaddr.sin_addr, cliaddrstr, 32));
childpid = fork();
if( 0 == childpid )
{
// child process
close(listenfd);
//my_echo_str(connfd);
my_sendData(connfd);
exit(0);
}
else
{
// parent process
close(connfd);
}
}
}
int my_sendData(int connfd)
{
write(connfd, "hello!client!", sizeof("hello!client!"));
return 0;
} |
|