1.问题:
进行java网络socket编程的时候,编译运行服务器端程序,结果控制台没有等待监听,而是直接停止,并输出乱码。
2.服务器端源码:
package Practise.net;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class TCPServer {
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(8888);
Socket socket = server.accept();
InputStream inputStream = socket.getInputStream();
byte[] bytes = new byte[1024];
int len = inputStream.read(bytes);
System.out.println(new String(bytes,0,len));
OutputStream outputStream = socket.getOutputStream();
outputStream.write("收到谢谢".getBytes());
socket.close();
server.close();
}
}
3.产生原因:
端口可能已经被占用。
4.解决办法:
修改自己设置的端口号,我这里将8888修改成了6666(自己随意设置,尽量避免占用),结果运行成功,没有报错。
监听中,没有出现停止报错,乱码提示问题。