Java中ServerSocket與Socket簡單的使用
阿新 • • 發佈:2018-12-22
這是一個客戶端與伺服器端的簡單互動程式碼,用於理解之間的資料傳遞。
廢話不多說,直接上程式碼。
客戶端
package com.quaint.scoket;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;
/**
* 客戶端簡要程式碼
* @author Quaint
* @date 2018年11月18日
*/
public class Client {
public static void main(String[] args) {
try {
//建立連線
Socket socket = new Socket("127.0.0.1",7777);
//傳送資料
OutputStream os = socket.getOutputStream();
Scanner in = new Scanner(System.in);
System.out.println("你想往伺服器發表什麼?");
String msg = in.nextLine();
os.write(msg.getBytes());
//接收資料
InputStream is = socket.getInputStream ();
byte[] b = new byte[1024];
int n = is.read(b);
//輸出伺服器回覆資料
System.out.println("伺服器回覆:" + new String(b,0,n));
is.close();
in.close();
os.close();
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
伺服器端
package com.quaint.scoket;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
/**
* 伺服器端簡要程式碼
* @author Quaint
* @date 2018年11月18日
*/
public class Service {
public static void main(String[] args) {
try {
//建立一個伺服器端
ServerSocket ss = new ServerSocket(7777);
System.out.println("等待客戶端連線...");
//等待客戶端連線
Socket s = ss.accept();
//連線之後接受客戶端發來的訊息
InputStream is = s.getInputStream();
byte[] b = new byte[1024];
int n = is.read(b);
System.out.println(new String(b,0,n));
//返回給客戶端訊息
OutputStream os = s.getOutputStream();
os.write("伺服器收到你的訊息。".getBytes());
s.close();
ss.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}