簡體   English   中英

如何使用Java中的聊天應用程序連接網絡上的兩台不同的計算機?

[英]How to connect 2 different computers on a network using a chat application in 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");
        }
    }
}

只需使用服務器的IP在客戶端上更改“ 127.0.0.1”,並確保打開端口4242。

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

這將在端口4242上的地址127.0.0.1上創建一個偵聽服務器的套接字。 如果將服務器更改為另一個地址(例如,另一台PC),則更改套接字正在偵聽的IP地址。

還值得注意的是,您可能必須打開或允許訪問您正在使用的端口。

客戶端需要服務器的IP地址和端口,即您要創建服務器和端口的系統的IP(4242)。因此在客戶端中需要更改

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

並確保兩個系統都通過有線或無線網絡連接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM