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編程. 這個是同步方式的. 簡單的基礎的通訊..聊以參考.