服务器 - 客户端无法连接

时间:2014-04-14 10:30:33

标签: c sockets

我是C语言中的socket编程新手。我被困在这里。下面是服务器和客户端.c程序文件。问题是他们没有得到联系。非常感谢任何帮助

这是client.c

#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <arpa/inet.h>

int main(void)
{
int host_socket =0,add_length,bufflen;
struct sockaddr_in host_addr;
struct hostent *h;
char recvbuffer[1024];

host_socket = socket(AF_INET,SOCK_DGRAM,0);
host_addr.sin_family = AF_INET;
host_addr.sin_port = 5000;
host_addr.sin_addr.s_addr = inet_addr("127.0.0.1");

if(bind(host_socket,(struct sockaddr*)&host_addr,sizeof(host_addr))<0)
{
    printf("\n Could not connecct to Server !!");
    return 1;
}

recvfrom(host_socket,recvbuffer,(sizeof(recvbuffer)-1),0,(struct     sockaddr*)&host_addr,&add_length);
fputs(recvbuffer,stdout);
return 0;
    }

这是server.c

#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>


int main(void)
{
int serv_socket =0;
char sendbuffer[1024];
struct sockaddr_in serv_addr;

serv_socket = socket(AF_INET,SOCK_DGRAM,0);
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = 5000;
serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);

bind(serv_socket,(struct sockaddr*)&serv_addr,sizeof(serv_addr));

listen(serv_socket,10);

while(1)
{

accept(serv_socket,(struct sockaddr*)NULL,NULL);
strcpy(sendbuffer,"your ip is not traced try again !!");

sendto(serv_socket,sendbuffer,strlen(sendbuffer),0,(struct sockaddr*)&serv_addr,sizeof(serv_addr));

close(serv_socket);
sleep(1);
}
return 0;
    }

0 个答案:

没有答案
相关问题