TCP echo服务器中的绑定错误

TCP echo服务器中的绑定错误,c,tcp,C,Tcp,我试图在本地主机上实现Ubuntu11.04中的TCP echo服务器和客户端程序。但是,我被绑定功能卡住了。 这是我的密码 TCPSERVER #include<sys/types.h> #include<sys/socket.h> #include<netinet/in.h> #include<arpa/inet.h> #include<string.h> #include<stdio.h> #include<st

我试图在本地主机上实现Ubuntu11.04中的TCP echo服务器和客户端程序。但是,我被绑定功能卡住了。 这是我的密码

TCPSERVER

#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("\nTcp Echo server.\n");
    //creating socket

    if(listenfd=socket(AF_INET,SOCK_STREAM,0)<0)
    {
        printf("\nServer Error:Cannot create socket.\n");
        exit(1);
    }
    if(bind(listenfd,(struct sockaddr*)&serv_addr,sizeof(serv_addr))<0)
    {
        printf("\nServer Error:cannot Bind.\n");
        close(listenfd);
        exit(1);
    }
    if((listen(listenfd,5))<0)
    {
        printf("\nServer Error:Cannot listen.\n");
        close(listenfd);
        exit(1);
    }
    cli_addr_len=sizeof(cli_addr);
    for(;;)
    {
        printf("\nServer:listening for clients.... Press Control +C to stpo echo server :\n");
        if((connfd=accept(listenfd,(struct sockaddr*)&cli_addr,&cli_addr_len))<0)
        {
            printf("\nServer Error:Cannot accept client connections.\n");
            close(listenfd);
            exit(1);
        }
        printf("\nServer:connection from client %s accepted.\n",inet_ntoa(cli_addr.sin_addr));
        if((r=read(connfd,rbuff,128))<0)
            printf("\nServer Error:Cannot receive message from client.\n");
        else
        {
            rbuff[r]='\0';
            if((w=write(connfd,rbuff,128))<0)
                printf("\nServer Error:cannot send message to the client.\n");
            else
                printf("Echoed back %s to %s.\n",rbuff,inet_ntoa(cli_addr.sin_addr));
        }
    }
}
#包括
#包括
#包括
#包括
#包括
#包括
#包括
服务地址中的结构sockaddr\u,cli\u addr;
内部列表,r,w,connfd,val,cli地址;
无符号短服务端口=30000;
char serv_ip[]=“127.0.0.1”;
char-rbuff[128];
char-sbuff[128];
int main()
{
bzero(&serv_addr,sizeof(serv_addr));
服务地址sin_family=AF_INET;
服务地址sin_port=htons(服务端口);
inet_aton(服务ip)(&serv_addr.sin_addr));
printf(“\nTcp Echo服务器。\n”);
//创建套接字

如果(listenfd=socket(AF_INET,SOCK_STREAM,0)正好位于代码错误下方:

if(listenfd=socket(AF_INET,SOCK_STREAM,0)<0)
{
    printf("\nServer Error:Cannot create socket.\n");
    exit(1);
}

if(listenfd=socket(AF_INET,SOCK_STREAM,0)使用
perror
打印出故障路径中的实际错误消息,而不是简单的
printf
if( (listenfd = socket(AF_INET,SOCK_STREAM,0)) < 0)
{
    printf("\nServer Error:Cannot create socket.\n");
    exit(1);
}