Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java聊天应用程序在网络上连接两台不同的计算机?_Java - Fatal编程技术网

如何使用Java聊天应用程序在网络上连接两台不同的计算机?

如何使用Java聊天应用程序在网络上连接两台不同的计算机?,java,Java,我有一对简单的客户端和服务器程序。客户端连接到服务器,当它连接时,服务器会回复“Hello there”消息。如果我希望客户端和服务器程序在不同的系统上运行,我应该如何修改程序 以下是客户端的代码 package practice; import java.io.*; import java.net.*; public class DailyAdviceClient { public static void main(String args[]) { Dail

我有一对简单的客户端和服务器程序。客户端连接到服务器,当它连接时,服务器会回复“Hello there”消息。如果我希望客户端和服务器程序在不同的系统上运行,我应该如何修改程序

以下是客户端的代码

package practice;

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

public class DailyAdviceClient
{
    public static void main(String args[])
    {
        DailyAdviceClient dac = new DailyAdviceClient();
        dac.go();
    }

    public void go()
    {
        try
        {
            Socket incoming = new Socket("127.0.0.1",4242);
            InputStreamReader stream = new InputStreamReader(incoming.getInputStream());
            BufferedReader reader = new BufferedReader(stream);
            String advice = reader.readLine();
            reader.close();
            System.out.println("Today's advice is "+advice);
        }
        catch(Exception e)
        {
            System.out.println("Client Side Error");
        }
    }
}
这是服务器的代码

package practice;

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

public class DailyAdviceServer
{
    public static void main(String args[])
    {
        DailyAdviceServer das = new DailyAdviceServer();
        das.go();
    }

    public void go()
    {
        try
        {
            ServerSocket serversock = new ServerSocket(4242);

            while(true)
            {
                Socket outgoing = serversock.accept();
                PrintWriter writer = new PrintWriter(outgoing.getOutputStream());
                writer.println("Hello there");
                writer.close();

            }
        }
        catch(Exception e)
        {
            System.out.println("Server Side Problem");
        }
    }
}
只需使用服务器的IP更改客户端上的“127.0.0.1”,并确保端口4242处于打开状态

        Socket incoming = new Socket("127.0.0.1",4242);
这是在端口
4242
上的地址
127.0.0.1
处创建一个侦听服务器的套接字。如果您将服务器更改为另一个地址,例如不同pc的地址,请更改套接字正在侦听的ip地址


还值得注意的是,您可能需要打开或允许访问您正在使用的端口。

客户端需要服务器的ip地址和端口,表示您创建服务器和端口(4242)的系统的ip。因此,在客户端中,您需要更改

Socket incoming = new Socket("127.0.0.1",4242); BY 
Socket incoming = new Socket("IP address of server",4242);

并确保两个系统都通过有线或无线网络连接。

对于系统,您的意思是希望它们通过多个LAN相互连接吗?您不需要输入正确的IP地址吗?此外,您还必须确保所使用的端口在正在使用的路由器上是打开的。提示:您可能需要在关闭写入程序后添加一个
outgoing.close()
,因为套接字将不再使用。