天天看點

socket雙向通信簡單案例

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();
	}
}
           
socket雙向通信簡單案例
socket雙向通信簡單案例

繼續閱讀