Socket類—-實現客戶端套接字
—-套接字是兩臺機器間通信的端點,用於描述IP地址和端口,應用程序通常通過“套接字”向網絡發送請求 或者應答網絡請求
—-構造方法:Socket(InetAdress address,int port)—創建一個流套接字,並將其連接到指定IP地址的端口 號
模擬客戶端
[java]
package guo;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
public class Client1 {
public static void main(String[] args)
{
try
{
Socket socket = new Socket("127.0.0.1",8000);
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()),true);
BufferedReader in1 = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while(true)
{
/*從鍵盤讀一行*/
String str = in.readLine();
if(str==null || "".equals(str))break;
/*寫給服務器端*/
out.println(str);
String str1 = in1.readLine();
System.out.println(str1);
}
socket.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
模擬服務端
[java]
package guo;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Service1 {
public static void main(String[] args)
{
try
{
/*開辟一個端口就是開啟一個服務瞭—端口的分配必須是唯一的,因為端口是為瞭唯一標識每臺計算機唯一服務的
* 端口號是從0~65535之間的,前1024個端口已被Tcp/Ip作為保留端口,因此自己分配的端口隻能是1024以後的*/
ServerSocket s = new ServerSocket(8000);
System.out.println("服務已經開啟,等待客戶來訪問!");
/*等待客戶來訪問,如果沒有客戶就阻塞,一直等待*/
Socket socket = s.accept();
System.out.println("接受到客戶的訪問!");
/*服務器從Socket的輸入流中讀取數據*/
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedReader in1 = new BufferedReader(new InputStreamReader(System.in));
PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()),true);
while(true)
{
//從socket的輸入流中進行讀操作
String str = in.readLine();
if("exit".equals(str))break;
/*打印到控制臺*/
System.out.println(str);
/*服務器端鍵盤*/
String str1 = in1.readLine();
out.println(str1);
}
socket.close();
s.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}