javasocket服务器没有连接
嗨,我是javasocket新手,我一直在尝试创建一个服务器socket。有人能告诉我哪里出了问题,因为我在说“地址已经在使用中”时出错了。有时我没有得到一个错误,但它只是没有形成一个连接。请帮忙?这是服务器类和客户机类
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.net.ServerSocket;
import java.net.Socket;
public class MessageServer {
public static void main(String[] args) throws IOException{
int port = 8080;
//int port = Integer.parseInt(args[0]);
ServerSocket server = new ServerSocket(port);
while(true){
System.out.println("Waiting for client...");
Socket client = server.accept();
System.out.println("Client from " + client.getInetAddress() + " connected.");
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
String inputLine = in.readLine();
System.out.println("Client said: '"+inputLine+"'");
Writer count = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
byte c [] = count.toString().getBytes();
count.flush();
}
}
}
import java.net.*;
import java.io.*;
public class MessageSendClient {
public static void man(String args[]) throws IOException{
Socket server1 = new Socket("143.210.72.82", 8080);
System.out.println("Connected to " + server1.getInetAddress());
InputStream in = server1.getInputStream();
byte c[] = new byte[100];
int num = in.read(c);
String count = new String(c);
System.out.println("Server said: " + count);
}
}
# 1 楼答案
尝试一个新端口。我不会使用8080,因为它可能是(而且可能已经被使用)。此外,在使用插座后,请务必将其关闭
由于我自己使用套接字是为了上大学,下面是代码(如果你需要UDP或RMI,我也可以发布它们)
}
# 2 楼答案
如果您使用的是Linux 8080/80/8443,那么就不适合使用其他端口,比如3456。 始终关闭与客户的套接字
更新: 首先,你不应该用服务器关闭服务器套接字。close(),服务器应该正在运行。这就是为什么有while循环。你应该用socket关闭你的客户端套接字。从服务器获取inputstream后关闭()。还记得在write()和flush()之后始终使用Close()关闭输出流,以避免副作用。创建两个类,一个用于服务器,一个用于客户端。首先启动Java类服务器,然后运行客户端类连接到服务器。终止客户端类并再次运行它。如果您使用的是eclipse,也可以在控制台中终止客户端。有时Java进程是重叠的,所以只需使用x按钮终止所有正在运行的进程。改进示例代码后,可以再次启动服务器和客户端类。 如果仍不起作用,则需要再次转发问题,并详细显示客户端和服务器的当前代码。不知何故,我迷失了方向,你目前的状态在哪里,因为你已经批准了你问题的答案
# 3 楼答案
不要使用ip,而是使用localhost或127.0.0.1 还可以尝试一个新端口,尝试使用一个大于1024的端口(这个数字以下的大多数端口都是众所周知的端口,它们注册到IANA)