将c unix服务器套接字连接到java windows客户端套接字

将c unix服务器套接字连接到java windows客户端套接字,第1张

概述最初我要感谢你的时间…… 我在我的macbook中使用c创建了一个服务器套接字,并在运行windows xp的不同机器中使用Java创建了一个客户端/套接字.我已将端口指定为5000但我无法指定正确的主机,因此无法建立连接.当我使用WinSock2在Windows XP中创建一个c服务器/套接字时,连接完全正如我使用localhost …任何想法??? Thnx提前 C代码 int main(in 最初我要感谢你的时间……

我在我的macbook中使用c创建了一个服务器套接字,并在运行windows xp的不同机器中使用Java创建了一个客户端/套接字.我已将端口指定为5000但我无法指定正确的主机,因此无法建立连接.当我使用WinSock2在windows XP中创建一个c服务器/套接字时,连接完全正如我使用localhost …任何想法???

Thnx提前

C代码

int main(int argc,const char ** argv)
{

/* SOCKET VARIABLES */int sock;struct sockaddr_in server;int mysock;char buff[1024];int rval;/*CREATE SOCKET*/sock =socket(AF_INET,SOCK_STREAM,0);if (sock<0) {    perror("*Failed TO CREATE SOCKET*");    exit(1);}server.sin_family=AF_INET;server.sin_addr.s_addr=INADDR_ANY;server.sin_port=5000;/*CALL BIND*/if (bind(sock,(struct sockaddr *)&server,sizeof(server))){    perror("BIND Failed");    exit(1);}/*ListEN*/Listen(sock,5);/*ACCEPT*/do{    mysock= accept(sock,(struct sockaddr *) 0,0);    if (mysock==-1)     {        perror ("ACCEPT Failed");    }    else    {        memset(buff,sizeof(buff));        if ((rval=recv(mysock,buff,sizeof(buff),0)) <0) {            perror("READING STREAM MESSAGE ERROR");        }        else if(rval==0)            printf("Ending connection");        else            printf("MSG: %s\n",buff);        printf("GOT THE MESSAGE (rval = %d)\n",rval);    }    return 0;}while (1) ;

Java代码

import java.io.;
import java.net.;

公共课SOK_1_CLIENT {

public voID run() throws Exception{    Socket SOCK =new Socket ("localhost",5000);    PrintStream PS =new PrintStream(SOCK.getoutputStream());    PS.println("HELLO TO SERVER FROM CLIENT");    inputStreamReader IR =new inputStreamReader(SOCK.getinputStream());    BufferedReader BR = new BufferedReader(IR);    String MESSAGE =BR.readline();    System.out.println(MESSAGE + "java");}

}

解决方法 在java客户端中,使用运行服务器而不是“localhost”的系统的IP地址. Localhost将引用运行客户端代码127.0.0.1的计算机的本地环回地址,但您的服务器在不同的计算机上运行,​​因此无法连接:

public voID run() throws Exception{    String address = "address_of_machine_running_server";    Socket SOCK =new Socket (address,5000);    PrintStream PS =new PrintStream(SOCK.getoutputStream());    PS.println("HELLO TO SERVER FROM CLIENT");    inputStreamReader IR =new inputStreamReader(SOCK.getinputStream());    BufferedReader BR = new BufferedReader(IR);    String MESSAGE =BR.readline();    System.out.println(MESSAGE + "java");}

另请注意,您需要相应地设置防火墙以允许连接.

>允许两台机器中的传入和传出连接>检查服务器的IP地址是否正确>尝试使用其IP地址Ping主机(服务器)以确保其正常工作>如果以上所有回报都是肯定的,那么你就会有一个成功的联系.

总结

以上是内存溢出为你收集整理的将c unix服务器/套接字连接到java windows客户端/套接字全部内容,希望文章能够帮你解决将c unix服务器/套接字连接到java windows客户端/套接字所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1227075.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-05
下一篇2022-06-05

发表评论

登录后才能评论

评论列表(0条)

    保存