I am trying to implement a TCP echo server and client program in Ubuntu 11.04 on my local host.However,I am getting stuck in the bind function. here is my code.
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
struct sockaddr_in serv_addr,cli_addr;
int listenfd,r,w,connfd,val,cli_addr_len;
unsigned short serv_port=30000;
char serv_ip[]="127.0.0.1";
char rbuff[128];
char sbuff[128];
int main()
{
bzero(&serv_addr,sizeof(serv_addr));
serv_addr.sin_family=AF_INET;
serv_addr.sin_port=htons(serv_port);
inet_aton(serv_ip,(&serv_addr.sin_addr));
printf("
Tcp Echo server.
");
//creating socket
if(listenfd=socket(AF_INET,SOCK_STREAM,0)<0)
{
printf("
Server Error:Cannot create socket.
");
exit(1);
}
if(bind(listenfd,(struct sockaddr*)&serv_addr,sizeof(serv_addr))<0)
{
printf("
Server Error:cannot Bind.
");
close(listenfd);
exit(1);
}
if((listen(listenfd,5))<0)
{
printf("
Server Error:Cannot listen.
");
close(listenfd);
exit(1);
}
cli_addr_len=sizeof(cli_addr);
for(;;)
{
printf("
Server:listening for clients.... Press Control +C to stpo echo server :
");
if((connfd=accept(listenfd,(struct sockaddr*)&cli_addr,&cli_addr_len))<0)
{
printf("
Server Error:Cannot accept client connections.
");
close(listenfd);
exit(1);
}
printf("
Server:connection from client %s accepted.
",inet_ntoa(cli_addr.sin_addr));
if((r=read(connfd,rbuff,128))<0)
printf("
Server Error:Cannot receive message from client.
");
else
{
rbuff[r]= ;
if((w=write(connfd,rbuff,128))<0)
printf("
Server Error:cannot send message to the client.
");
else
printf("Echoed back %s to %s.
",rbuff,inet_ntoa(cli_addr.sin_addr));
}
}
}
我在海合会的乌隆图汇编之后,正遇到严重的错误。 我只上载了整个法典,因为我没有发现任何错误,需要帮助。