--服务端编码
public class SocketListener implements CommandLineRunner {
// @Resource
// private MessgaChange messgaChange;
@Override
public void run(String... args) throws Exception {
Socket client = null;
ServerSocket serverSocket =null;
try {
serverSocket = new ServerSocket(9021);
while (true){
System.out.println("Socket服务端已启动,等待客户端请求...");
client = serverSocket.accept();
new Thread(new ServerThread(client)).start();
}
} catch (Exception e) {
e.printStackTrace();
}finally {
client.close();
serverSocket.close();
System.out.println("Socket服务端已关闭...");
}
}
}
--客户端测试编码
public static void main(String[] args) throws Exception{
Socket clientsocket = null;
clientsocket = new Socket();
SocketAddress socketAddress = new InetSocketAddress(
"10.42.14.149", 9021);
clientsocket.connect(socketAddress, 20000);
clientsocket.setSoTimeout(20000);// 设置读超时10秒
clientsocket.connect(socketAddress, 20000); //设置连接时间5秒
String socketmessage="你好";
byte[] outmess = socketmessage.getBytes("GBK");
//<------------------------发送报文----------------------------> //
OutputStream out = clientsocket.getOutputStream();
out.write(outmess);
out.flush();
}
客户端报错:
Exception in thread "main" java.net.SocketException: already connected
at java.net.Socket.connect(Socket.java:569)
服务端报错:
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:209)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at java.net.SocketInputStream.read(SocketInputStream.java:127)
第一次接触socket,不知道是什么原因报错,求大神帮忙看看怎么修改,不胜感激!