【发布时间】:2011-11-11 09:28:31
【问题描述】:
我编写了一个简单的客户端-服务器应用程序。它在我的电脑上运行良好。但是当我的朋友尝试连接我的服务器时,他不能。我在我的计算机上使用端口 23 创建服务器。这是创建服务器的部分:
public Server(int port_number) throws IOException{
create_Server(port_number);
}
public static void main(String[] args) throws IOException {
int port_number=23;
new Server(port_number);
}
private void create_Server(int port_number) throws IOException{
ss = new ServerSocket(port_number);
System.out.println("Server is ready!");
while(true){
s=ss.accept();
System.out.println(s.getLocalAddress().getHostName() + " was connected!");
send_con_mes();
list.put(s,new DataOutputStream(s.getOutputStream()) );
new ServerThread(s,this).start();
}
}
这里是客户端部分;
public void start_Chat() {
try {
Ip_addr = JOptionPane.showInputDialog("Enter the IP number of the server to connect : ");
s = new Socket(Ip_addr, 23);
Client_name = JOptionPane.showInputDialog("Enter your Nickname : ");
dis = new DataInputStream(s.getInputStream());
dos = new DataOutputStream(s.getOutputStream());
new Thread(Client.this).start();
好吧,我可以说话,发送私人消息等。当我作为客户端连接到我的计算机上的服务器时,最后的问题是来自另一个 IP 的客户端无法连接。
【问题讨论】:
-
您是否在路由器/防火墙/两者中为您的端口添加了端口转发?
-
nope_?。我是 java 网络新手。
-
我不认为这是一个java问题,你的代码似乎是正确的,它看起来更像是一个正常的网络问题。你的朋友在同一个网络上吗?你有窗户吗?在这种情况下,您是否启用了 Windows 防火墙?
-
@KevinDTimm 这是唯一显示连接的套接字线,我的意思是一小部分。我可以分享所有看起来很复杂的代码:)
-
@Simone 不,我的朋友不在我的网络上。是的,我使用的是 Windows 7,但防火墙没有激活_?
标签: java sockets client-server port connect