在这段java代码中如何实现两个不同IP的交流?

发布于 2022-09-01 22:42:12 字数 2138 浏览 11 评论 0

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

class Send implements Runnable
{
    private DatagramSocket ds;
    public  Send(DatagramSocket ds)
    {
        this.ds = ds;
    }
    
    public void run()
    {
        try
        {
            BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
            String line = null;
            while((line = bufr.readLine())!=null)
            {
                if("886".equals(line))
                    break;
                byte[] buf = line.getBytes();
                
                DatagramPacket dp =
                new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.105"),10002);
                ds.send(dp);
            }
        }
        catch(Exception e)
        {
            throw new RuntimeException("发送端失败");
        }
    }
}

class Rece implements Runnable
{
    private DatagramSocket ds;
    public  Rece(DatagramSocket ds)
    {
        this.ds = ds;
    }
    
    public void run()
    {
        try
        {
            while(true)
            {
                byte[] buf = new byte[1024];
                DatagramPacket dp = new DatagramPacket(buf,buf.length);
                ds.receive(dp);
                String ip = dp.getAddress().getHostAddress();
                String data = new String(dp.getData(),0,dp.getLength());
                
                System.out.println(ip+"::"+data);
            }
        }
        catch(Exception e)
        {
            throw new RuntimeException("接收端失败");

        }
    }
}

class ChartDemo
{
    public static void main(String[] args)throws Exception
    {
        DatagramSocket sendSocket = new DatagramSocket();
        DatagramSocket receSocket = new DatagramSocket(10002);
        
        new Thread(new Send(sendSocket)).start();
        new Thread(new Rece(receSocket)).start();
    }
}

在上面这段代码里,如果要实现两台电脑的交流,需要在什么样的网络环境下进行呢?
比如我将 DatagramPacket dp =

                new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.105"),10002);这行代码里的ip地址修改一下改成别的电脑的,在什么样的网络环境下可以实现呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无法回应 2022-09-08 22:42:12

两台电脑在同一个局域网内就没问题

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文