- 论坛徽章:
- 0
|
怎么才能让client能够继续发送
最基本的例程啊,没改动过
client:
char str[] = ".........";
if ((server_host_name = gethostbyname(host_name)) == 0)
{
perror("Error resolving local host\n" ;
exit(1);
}
bzero(&pin,sizeof(pin));
while(1)
{
printf("enter the number:\n" ;
do
{
str = getchar();
i++;
if (str[i - 1] == '\n')
{
str = '\0';
}
}while(str[i - 1] != '\n');
if ((len = send(socket_descriptor,str,sizeof(str),0)) == -1)
{
perror("Error in send\n" ;
exit(1);
}
}
server:
sock_descriptor = socket(AF_INET,SOCK_STREAM,0);
if (sock_descriptor == -1)
{
perror("call to socket" ;
exit(1);
}
bzero(&sin,sizeof(sin));
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = INADDR_ANY;
sin.sin_port = htons(port);
if (bind(sock_descriptor,(struct sockaddr *)&sin,sizeof(sin)) ==-1)
{
perror("call to bind" ;
exit(1);
}
if (listen(sock_descriptor,1) == -1)
{
perror("call to listen" ;
exit(1);
}
while(1)
{
printf ("Accepting connections....\n" ;
if( (temp_sock_descriptor = accept(sock_descriptor,(struct sockaddr *)&pin,&address_size)) == -1)
{
perror("call to accept" ;
exit(1);
}
if ((len = recv(temp_sock_descriptor,buff,sizeof(buff),0)) == -1)
{
perror("call to recv" ;
exit(1);
}
}
pin.sin_family = AF_INET;
pin.sin_addr.s_addr = htonl(INADDR_ANY);
pin.sin_addr.s_addr = ((struct in_addr *)(server_host_name->;h_addr))->;s_addr;
pin.sin_port = htons(port);
if ((socket_descriptor = socket(AF_INET,SOCK_STREAM,0)) == -1)
{
perror("Error opening to socket\n" ;
exit(1);
}
if (connect(socket_descriptor,(void *)&pin,sizeof(pin)) == -1)
{
perror("Error connecting to socket\n");
exit(1);
} |
|