socket雙向通信簡單案例
- 用戶端
- 1.建立套接字
- 2.建立輸出資料流
- 3.關閉socket輸出
- 4.建立輸入資料流
- 服務端
- 1.利用套接字指定接受資料的端口
- 2.建立輸入資料流
- 3.關閉socket輸入
- 4.建立輸出資料流
注意:運作的時候需要先運作服務端,讓服務端處于準備接受狀态,再而運作用戶端,否則會報錯!
package 雙向通信;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
public static void main(String[] args) throws UnknownHostException, IOException {
System.out.println("用戶端已啟動。。。");
//建立套接字
Socket socket = new Socket(InetAddress.getByName("192.168.148.1"), 8080);
//建立輸出資料流,
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
dos.writeUTF("你好!");
socket.shutdownOutput();
//建立輸入資料流
DataInputStream dis = new DataInputStream(socket.getInputStream());
String str = dis.readUTF();
System.out.println("伺服器跟我說:"+str);
dis.close();
dos.close();
socket.close();
}
}
/*********************************************************************/
package 雙向通信;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) throws IOException {
System.out.println("伺服器已啟動。。。");
//利用套接字,指定伺服器接收資料的端口号
Socket socket = new ServerSocket(8080).accept();
//輸入流
DataInputStream dis = new DataInputStream(socket.getInputStream());
String str = dis.readUTF();
System.out.println("用戶端對我說:"+str);
socket.shutdownInput();
//輸出流
DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
dos.writeUTF("伺服器已接受!");
dos.close();
dis.close();
socket.close();
}
}