0
我使用以下代碼來連接到其上提供作爲命令行參數某個端口的服務器...連接:連接在C程序拒絕在客戶端
#include <stdio.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <errno.h>
#include <stdlib.h>
#include <strings.h>
int main(int argc,char *argv[])
{
struct sockaddr_in serverAddr;
int clientSocketFd ;
char buffer[1024];
if((clientSocketFd = socket(AF_INET, SOCK_STREAM, 0))==-1)
perror("socket");
//get the server IP address and PORT
bzero(&serverAddr, sizeof serverAddr);
printf("ip address :- %s\n",argv[1]);
inet_pton(AF_INET, argv[1], &(serverAddr.sin_addr));
serverAddr.sin_family=AF_INET;
serverAddr.sin_port = atoi(argv[2]);
printf("PORT :- %d\n",serverAddr.sin_port);
//connect to server
if(connect(clientSocketFd,(struct sockaddr *) &serverAddr, sizeof(serverAddr)) == -1)
perror("connect");
printf("Connecting to the server %s on port %s \n",argv[1],argv[2]);
while (1)
{
//receive incoming data
if(recv(clientSocketFd, buffer,1023, 0)==-1)
{
printf("buffer : %s\n" ,buffer);
printf("Received from Server : %s \n",buffer);
break;
}
}
close(clientSocketFd);
}
但在客戶端,它顯示「連接:連接被拒絕」 ......
如果我使用telnet,那麼就說明連接,但無法通過client.c 上述代碼連接plz幫助
另外我更改了最大允許掛起連接數爲100,然後也沒有解決問題...... :(...幫助plz
小澄清:這是必要的,因爲端口在地址結構中以[大(又名網絡)字節順序](http://en.wikipedia.org/wiki/Endianness)存儲。 – unwind
好的先生..我會盡力.. – Subbu
謝謝你先生......問題解決了! – Subbu