- 论坛徽章:
- 0
|
回复 3# GFree_
多谢回复啊!
我不太明白,如果server端,没有使用close(),那么在一次client建立链接之后会是什么反映?server仍然在监听吗?
以下是代码,帮忙看看有什么问题吗???
正常的现象是什么样子的呢?运行的结果和我想的不一样。。。
server.c:
int main(int argc , char* argv[]){
int server_sockfd,client_sockfd;
int server_len,client_len;
struct sockaddr_in server_address;
struct sockaddr_in client_address;
int i,byte;
char char_recv,char_send;
//socket(int _domain,int _type,int _protocol)
server_sockfd=socket(AF_INET,SOCK_STREAM,0);
//bind(int _fd,const struct sockaddr *addr,socklen_t addrlen)
server_address.sin_family=AF_INET;
server_address.sin_addr.s_addr=inet_addr("127.0.0.1");
server_address.sin_port=9734;
server_len=sizeof(server_address);
bind(server_sockfd,(struct sockaddr *)&server_address,server_len);
//liste(int _fd,int _n)
listen(server_sockfd,5);
printf("aaaaaaaaaaaaaaaaaaaaaaaa\n");
printf("the server has been waiting......\t\n");
//accept(int _fd,struct sockaddr *addr, socklen_t *addrlen)
client_len=sizeof(client_address);
client_sockfd=accept(server_sockfd,(struct sockaddr *)&client_address,(socklen_t *)client_len);
//read() or write()
return 0;
}
client.c:
int main(int argc,char* argv[]){
int sockfd_client;
struct sockaddr_in client_address;
int client_len;
int result;
int i,byte;
char char_recv,char_send;
//int socket(int _domain,int _type,int _protocal)
if((sockfd_client=socket(AF_INET,SOCK_STREAM,0))==-1){
printf("Sorry! fail to establish the socket client!\n");
exit(0);
}
//int connect(int sockfd, const struct sockaddr *addr,socklen_t addrlen);
client_len=sizeof(client_address);
client_address.sin_family=AF_INET;
client_address.sin_addr.s_addr=inet_addr("127.0.0.1");
client_address.sin_port=9734;
if((result=connect(sockfd_client,(struct sockaddr *)&client_address,client_len))==-1){
printf("Sorry! fail to connect to the server!\n");
exit(0);
}
//read()/recv()
//write()/send()
//close()
return 0;
|
|