import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) throws Exception {
String ip = "localhost";
int port = 5643;
Socket s = new Socket(ip, port);
String str = "Sagar Tanwar";
OutputStreamWriter os = new OutputStreamWriter(s.getOutputStream());
PrintWriter pw = new PrintWriter(os);
os.write(str);
os.flush();
}
}
import java.net.*;
import java.io.*;
public class Server {
public static void main(String[] args) throws Exception {
System.out.println("Server is started");
ServerSocket ss = new ServerSocket(5643);
System.out.println("Server is waiting");
Socket s = ss.accept();
System.out.println("Client Connected");
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
String str = br.readLine();
System.out.println("Client Data : "+str);
}
}
Exception in thread "main" java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:606)
at java.net.Socket.connect(Socket.java:555)
at java.net.Socket.<init>(Socket.java:451)
at java.net.Socket.<init>(Socket.java:228)
在
Client.java
中更改此行:
String str = "Sagar Tanwar";
至:
String str = "Sagar Tanwar\r\n";
您的服务器期望读取整行(
br.readLine()
),并且它会继续读取,直到您的客户端保持连接。一旦客户端断开连接,就会抛出异常,因为服务器无法读取新行。
在我的系统上:
java.net.ConnectException: Connection refused: connect
- 如果服务器未处于活动状态java.net.SocketException: Connection reset
- 如果服务器无法从客户端读取整行如果您在客户端类结束时关闭连接,一切都会为您工作。
String ip = "localhost";
int port = 5643;
Socket s = new Socket(ip, port);
String str = "Sagar Tanwar";
OutputStreamWriter os = null;
try {
os = new OutputStreamWriter(s.getOutputStream());
os.write(str);
os.flush();
} finally {
if (os != null)
os.close();
}
或“尝试使用资源”
String ip = "localhost";
int port = 5643;
Socket s = new Socket(ip, port);
String str = "Sagar Tanwar";
try (OutputStreamWriter os = new OutputStreamWriter(s.getOutputStream())) {
os.write(str);
os.flush();
}
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
public class Client {
public static void main(String[] args) throws Exception {
String ip = "localhost";
int port = 5643;
Socket s = new Socket(ip, port);
String str = "Sagar Tanwar";
OutputStreamWriter os = new OutputStreamWriter(s.getOutputStream());
PrintWriter pw = new PrintWriter(os);
os.write(str);
os.flush();
}
}