Java实现端口通信
- 根据个人需求不同,可以修改代码,由于readLine以及nextLine都是阻塞式函数,若无消息则程序等待消息输入,故只能实现一问一答通信或者自动回答模式
- 个人简单实现端口通信,具体代码如下(仅供学习使用,有待改善)
注释详细,共初学使用,欢迎在评论中提出问题。
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
public class _socket{
public static void main(String[] args) {
try {
Socket socket= new Socket("127.0.0.1",4001);
OutputStream os = socket.getOutputStream();
PrintWriter pw = new PrintWriter(os);
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
Scanner sc = null;
String info = null;
while (true) {
sc = new Scanner(System.in);
String command = sc.nextLine();
pw.write(command+"\r\n");
pw.flush();
info = br.readLine();
System.out.println("发-->" + command + "\r\n");
System.out.println("收-->" + info + "\r\n");
}
if (command.equalsIgnoreCase("exit"))
break;
}
socket.shutdownOutput();
sc.close();
socket.close();
pw.close();
os.close();
is.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}