可能性の重複:
Connection from linux to windows via tcp(のlinux/C++での)Conecting TCPクライアント
私は窓/ C#と別のものにTCPクライアントを持っていますon linux/C++ また、私は両方にTCPサーバーを持っています。窓/ C#はOK働く上
マイTCPクライアント、問題は、Linux/C++
にTCPクライアントである私は、Linux上でTCPサーバーに接続するとき/それは完璧に動作++、しかし、私はに接続しようとすると、cはWindowsのTCPサーバー/ C#は接続しませんが、pingは正常です。
これは失敗したコードの一部である:
int sockfd, portno, n;
struct sockaddr_in serv_addr;
struct hostent *server;
struct in_addr addr={0};
char buffer[256];
if (argc < 3) {
fprintf(stderr,"usage %s hostname port\n", argv[0]);
exit(0);
}
portno = atoi(argv[2]);
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0)
error("ERROR opening socket");
addr.s_addr=inet_addr(argv[1]);
server = gethostbyaddr((char *) &addr, 6, AF_INET);
if (server == NULL) {
fprintf(stderr,"ERROR, no such host\n");
exit(0);
問題がラインである:
server = gethostbyaddr((char *) &addr, 6, AF_INET);
それは "ERROR、そのようなホスト" を印刷するので、それは、nullが返さ
すべての組み合わせを試しました。
-TCPクライアント(Linux)からTCPサーバー(Linux)
-TCPクライアント(Linux)のTCPサーバー(Windowsの場合)へのTCPサーバーへ
-TCPクライアント(Windowsの場合)(Linux)のTCPサーバーへ
-TCPクライアント(窓)(ウィンドウ)
すべてがを除いて動作します:TCPサーバーへのTCPクライアント(Linux)の(窓)
私はまた TCPサーバ(Windowsの場合)には(Linux上で付属)TCPクライアントのnetcatを試してみましたが、それが動作します。
私は両方のWindowsからLinuxへともLinuxからの窓へのpingと呼ばれてきた、そしてそれは100%をrecieves
私のTCPクライアント(Linuxは)(TCPサーバーへのLinuxに接続していない理由を私は知りません)
TCP接続を行い、IPアドレス、なぜ逆のDNSルックアップを実行する必要がありますか? – dtb
what ???、私は理解できませんでした...逆のDNSルックアップは何ですか? –
あなたは 'gethostbyaddr'を呼び出します。どうして? – dtb