Can';t使用JAVA连接到另一台pc(另一个IP)
我正在尝试将客户端类连接到另一台计算机中使用的服务器 使用另一个IP…我在套接字中写入了服务器的IP和相同的端口,但没有连接…当我在同一台计算机上运行服务器和客户端时,我成功地连接到了服务器,但在IP中写入了127.0.0.1 对不起,我的英语不好 服务器类:Can';t使用JAVA连接到另一台pc(另一个IP),java,sockets,client-server,serversocket,Java,Sockets,Client Server,Serversocket,我正在尝试将客户端类连接到另一台计算机中使用的服务器 使用另一个IP…我在套接字中写入了服务器的IP和相同的端口,但没有连接…当我在同一台计算机上运行服务器和客户端时,我成功地连接到了服务器,但在IP中写入了127.0.0.1 对不起,我的英语不好 服务器类: import java.awt.BorderLayout; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionLis
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import java.net.Socket;
import javax.swing.*;
public class ClientSide {
Socket client;
ObjectOutputStream out1;
//////////////////////
JFrame frame=new JFrame("Client");
JTextArea ta=new JTextArea(20,10);
JButton btn=new JButton("Enter");
JTextArea send=new JTextArea(10,5);
///////////////////////
/////Gui////
ClientSide(){
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.setSize(600,500);
JPanel p=new JPanel(new BorderLayout());
frame.add(p);
JScrollPane spta=new JScrollPane(ta);
p.add(btn,BorderLayout.EAST);
p.add(spta,BorderLayout.CENTER);
p.add(send,BorderLayout.SOUTH);
ta.setBackground(Color.cyan);
frame.revalidate();
////set Client//
try {
client=new Socket("127.0.0.1",8080);
ta.setText(" -Connection-");
////set Output/////
out1=new ObjectOutputStream( client.getOutputStream());
out1.flush();
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try {
out1.writeObject(send.getText());
out1.flush();
ta.setText(ta.getText()+"\nYou:"+send.getText());
} catch (IOException e1) {
e1.printStackTrace();
}
if (send.getText().equals("Bye"))
try {
client.close();
frame.dispose();
} catch (IOException e) {
e.printStackTrace();
}
}
});
//////set Input////
ObjectInputStream in = new ObjectInputStream(client.getInputStream());
Object inputLine; ;
while(true){
try {
out1.flush();
inputLine = in.readObject();
if(inputLine!=null){
ta.setText(ta.getText()+"\nClient:"+inputLine);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new ClientSide();
}
}
客户端类:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import javax.swing.*;
public class ServerSide {
ObjectOutputStream out;
ServerSocket ss;
Socket so;
JFrame frame=new JFrame("Server");
///////
JTextArea ta=new JTextArea(20,10);
JTextArea send=new JTextArea(10,5);
JButton enter=new JButton("Enter");
////set Gui////
ServerSide(){
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame .setVisible(true);
frame. setSize(600,500);
JPanel p=new JPanel(new BorderLayout());
frame. add(p);
JScrollPane spta=new JScrollPane(ta);
p.add(enter,BorderLayout.EAST);
p.add(spta,BorderLayout.CENTER);
p.add(send,BorderLayout.SOUTH);
ta.setBackground(Color.cyan);
frame.revalidate();
/////Server///
try {
int port=8080;
System.out.println(port);
ss = new ServerSocket(8080);
so=ss.accept();
ta.setText(ta.getText()+"\n -Connection-");
/////set Output////
out = new ObjectOutputStream(so.getOutputStream());
out.flush();
enter.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try {
Object ob=send.getText();
out.writeObject(ob);
SwingUtilities.invokeLater(new Runnable(){
public void run() {
ta.setText(ta.getText()+"\nYou:"+send.getText());
}
});
} catch (IOException e1) {
e1.printStackTrace();
}
if (send.getText().equals("Bye"))
try {
so.close();
ss.close();
frame.dispose();
} catch (IOException e) {
e.printStackTrace();
}
}
});
/////set Input///
ObjectInputStream in = new ObjectInputStream(so.getInputStream());
String ob ;
while(true){
try {
ob = (String) in.readObject();
if(ob!=null){
ta.setText(ta.getText()+"\nClient:"+ob);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new ServerSide();
}
}
例外情况:
java.net.ConnectException: Connection timed out: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at ControlMouseProject.ClientSide.<init>(ClientSide.java:41)
at ControlMouseProject.ClientSide.main(ClientSide.java:104)
line 41:
client=new Socket("IP",8080);
java.net.ConnectException:连接超时:连接
位于java.net.DualStackPlainSocketImpl.connect0(本机方法)
位于java.net.DualStackPlainSocketImpl.socketConnect(未知源)
位于java.net.AbstractPlainSocketImpl.doConnect(未知源)
位于java.net.AbstractPlainSocketImpl.connectToAddress(未知源)
位于java.net.AbstractPlainSocketImpl.connect(未知源)
位于java.net.PlainSocketImpl.connect(未知源)
位于java.net.socksocketimpl.connect(未知源)
位于java.net.Socket.connect(未知源)
位于java.net.Socket.connect(未知源)
位于java.net.Socket。(未知源)
位于java.net.Socket。(未知源)
在ControlMouseProject.ClientSide.(ClientSide.java:41)
在ControlMouseProject.ClientSide.main(ClientSide.java:104)中
第41行:
客户端=新套接字(“IP”,8080);
禁用服务器电脑的个人防火墙。我必须在我的防病毒软件中禁用服务器电脑的个人防火墙才能解决此问题。希望它也能对你有用 错误/异常是什么?您必须使用另一台计算机的IP地址,而不是127.0.0.1。它们是如何连接的?一些WLAN?我写了127.0.0.1,但当我将其更改为计算机IP时,我得到了异常,我知道如果我想连接到其他计算机,我需要替换它…这就是我所做的…但我仍然得到异常…它是什么WLAN?网络中会有任何硬件或软件防火墙吗?你能用其他程序从客户端计算机连接到服务器计算机吗。例如telnet,甚至是浏览器?你可以启动你的服务器并尝试连接它。mtnx的评论我会检查它以后和另一个问题,我如何可以连接到同一路由器的计算机?因为127.0.0.1没有帮助,他们有相同的IP。。。