【发布时间】:2014-04-26 20:10:44
【问题描述】:
您好,我是 Java 套接字的新手,我一直在尝试创建服务器套接字。有人可以告诉我哪里出错了,因为我收到一条错误消息“地址已在使用中”。有时我没有收到错误,但它只是没有形成连接。请帮忙?这是服务器类和客户端类。
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);
}
}
【问题讨论】:
-
尝试使用“localhost”而不是
143.210.72.82,并且不要使用已经用于其他目的的8080端口号。 -
可能您的程序在每次运行时都没有关闭套接字,并且套接字仅在套接字超时后才可用。
-
你已经同时运行了两次服务器。
-
localhost对我来说工作正常。 -
你能告诉我如何只运行一次吗?
标签: java eclipse sockets connection