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

时间:2014-06-24 14:38:46

标签: java

我有一对简单的客户端和服务器程序。客户端连接到服务器,当它连接时,服务器回复一个" 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");
        }
    }
}

3 个答案:

答案 0 :(得分:2)

只需更改" 127.0.0.1"在具有服务器IP的客户端上,确保端口4242已打开。

答案 1 :(得分:0)

        Socket incoming = new Socket("127.0.0.1",4242);

这是在端口127.0.0.1上的地址4242上创建一个侦听服务器的套接字。如果您将服务器更改为另一个地址,例如另一个地址,则更改套接字正在侦听的IP地址。

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

答案 2 :(得分:0)

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

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

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