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();
}
}
}