JAVA TCP/IP 同步传递消息 初步 学习
TCPServer.java:
import java.net.*; // TCP/IP Socket编程所用包
import java.io.*;
public class TCPServer{
public static void main( String[] args ) throws Exception {
ServerSocket ss = new ServerSocket(6666); // 新申请一个sever的端口, 一般用1024以上,因为之下的可能会被系统随时调用.
while(true){
Socket s = ss.accept(); // 插口接受信息. 是阻塞方式的, 如果没有就会一直等待
// 得异步方式的来做, 否则这样的话 就会浪费时间
System.out.println("A client connected!");
InputStream is = s.getInputStream(); // 接受消息
DataInputStream dis = new DataInputStream(is);
System.out.println(dis.readUTF()); // 打印从客户端发来的消息, 当然readUTF也是阻塞式的, 没有则一直等待.
// readUTF 是阻塞式的..
dis.close(); // 关闭数据输入流
s.close(); // 关闭当前的端口..
}
}
}
TCPCllient.java:
import java.net.*;
import java.io.*;
public class TCPClient {
public static void main( String[] args ) throws Exception{
Socket s = new Socket("127.0.0.1", 6666);
// Socket(String host, int port); server的ip, 和对应的端口号. 以区分具体主机上的某个程序..
// 数据出处, 从端口的outputstream上向外送数据
OutputStream os = s.getOutputStream();
//Thread.sleep(30000); // 这个为了测试, readUTF是阻塞式的
DataOutputStream dos = new DataOutputStream(os);
dos.writeUTF("hello server!");
dos.flush();
dos.close();
s.close();
}
}
JAVA已经提供了异步式的TCP/IP编程. 这个是同步方式的. 简单的基础的通信..聊以参考.