Java客户机-服务器套接字相关问题 import java.io.*; 导入java.net。*; 公共类客户端{ 公共静态void main(字符串[]args)引发异常{ 字符串ip=“localhost”; int端口=5643; 插座s=新插座(ip,端口); String str=“Sagar Tanwar”; OutputStreamWriter os=新的OutputStreamWriter(s.getOutputStream()); PrintWriter pw=新的PrintWriter(操作系统); os.write(str); os.flush(); } } 线程“main”java.net.ConnectException中的异常:拒绝连接(拒绝连接) 位于java.net.PlainSocketImpl.socketConnect(本机方法) 位于java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) 位于java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 位于java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) 位于java.net.socksocketimpl.connect(socksocketimpl.java:392) 位于java.net.Socket.connect(Socket.java:606) 位于java.net.Socket.connect(Socket.java:555) 位于java.net.Socket。(Socket.java:451) 位于java.net.Socket(Socket.java:228)
如果在客户端类结束时关闭连接,一切都将正常工作Java客户机-服务器套接字相关问题 import java.io.*; 导入java.net。*; 公共类客户端{ 公共静态void main(字符串[]args)引发异常{ 字符串ip=“localhost”; int端口=5643; 插座s=新插座(ip,端口); String str=“Sagar Tanwar”; OutputStreamWriter os=新的OutputStreamWriter(s.getOutputStream()); PrintWriter pw=新的PrintWriter(操作系统); os.write(str); os.flush(); } } 线程“main”java.net.ConnectException中的异常:拒绝连接(拒绝连接) 位于java.net.PlainSocketImpl.socketConnect(本机方法) 位于java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) 位于java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 位于java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) 位于java.net.socksocketimpl.connect(socksocketimpl.java:392) 位于java.net.Socket.connect(Socket.java:606) 位于java.net.Socket.connect(Socket.java:555) 位于java.net.Socket。(Socket.java:451) 位于java.net.Socket(Socket.java:228),java,Java,如果在客户端类结束时关闭连接,一切都将正常工作 String ip = "localhost"; int port = 5643; Socket s = new Socket(ip, port); String str = "Sagar Tanwar"; OutputStreamWriter os = null; try { os = new OutputStreamWriter(s.getO
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();
}
或者“尝试使用资源”
在
Client.java
中更改此行:
String str = "Sagar Tanwar";
致:
您的服务器希望读取一整行(
br.readLine()
),并继续读取,直到您的客户端保持连接。一旦客户端断开连接,就会引发异常,因为服务器无法读取新行
旁注
在我的系统上:
- 如果服务器未处于活动状态,您的客户端将抛出:
java.net.ConnectException:连接被拒绝:connect
- 如果服务器无法从客户端读取整行数据,服务器将抛出:
java.net.SocketException:Connection reset
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();
}
}
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();
}
String str = "Sagar Tanwar";
String str = "Sagar Tanwar\r\n";