Java 如何通过套接字与局域网中的两台计算机进行通信

Java 如何通过套接字与局域网中的两台计算机进行通信,java,sockets,server,client,Java,Sockets,Server,Client,我想使用套接字(服务器/客户端)将数据从一台计算机发送到另一台计算机,我搜索了一个解决方案,但没有找到任何有用的解决方案,有人能帮我吗 这是我的服务器代码: import java.net.*; import java.io.*; class server { public static void main(String arg[]) { try { ServerSocket server = new ServerSocket(3006);

我想使用套接字(服务器/客户端)将数据从一台计算机发送到另一台计算机,我搜索了一个解决方案,但没有找到任何有用的解决方案,有人能帮我吗

这是我的服务器代码:

import java.net.*;
import java.io.*;
class server
{
    public static void main(String arg[])
    {
    try
       {

        ServerSocket server = new ServerSocket(3006);
        Socket s = server.accept();
        System.out.println("connected!");   

        DataOutputStream dos = new DataOutputStream(s.getOutputStream());
        dos.writeUTF("Welcom to socket");
       }
    catch(Exception e){
        e.printStackTrace();     
       }
    }   
}
这是我的客户机代码:(192.168.1.5是服务器的区域设置地址)


你的代码对我有用;服务器应该刷新()并关闭()输出流,但即使没有这些,也可以正常工作。请尝试使用“0.0.0.0”作为您的IP地址,并确保先运行服务器,然后运行客户端。谢谢@diginoise的评论,对我来说,代码只能在本地工作(在一台计算机中),但不适用于外部连接(两台计算机)。你们试过在局域网中连接的两台不同的计算机上运行它吗?不幸的是,我只测试了本地运行。尝试在构造函数之后打印绑定到服务器套接字的地址,或者检查是否绑定了服务器.isBound()==true(可能是0.0.0.0,验证您是否可以远程登录到该IP地址和套接字。因此,对于我来说,在Win上调用
telnet 127.0.0.1 3006
生成了所需的
欢迎使用套接字
输出,然后关闭连接。检查防火墙。
 import java.net.*;
 import java.io.*;
 class client 
 {
    static InetAddress LocaleAdresse;
    public static void main(String arg[])
    {
       try
        {
        System.out.println("client execute");
        Socket s = new Socket("192.168.1.5", 3006);

        DataInputStream dis = new DataInputStream (s.getInputStream());
        String msg = dis.readUTF();
        System.out.println(msg);
        s.close();          
        }
            catch(Exception e){
            e.printStackTrace();
        }
    }
 }