一、Socket_Server.java
package socket;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;
public class Socket_Server {
public static void main(String[] args) {
try{
// 創建一個服務器端對象m_ServerSocket,參數是端口號
ServerSocket m_ServerSocket=new ServerSocket(5000);
// 通過accept()接收客戶的通信
Socket m_socket=m_ServerSocket.accept();
// 獲取客戶端輸入流,獲得用戶請求的信息
InputStream is=m_socket.getInputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(is));
String info;
while((info=br.readLine())!=null){
System.out.println("客戶端說:"+info);
}
// 給客戶端傳一個響應字符
String reply="來自【服務器】的信息:作者是【老舍】。";
byte[] replys=reply.getBytes();
// 通過輸出流發送請求
OutputStream os=m_socket.getOutputStream();
os.write(replys);
// 關閉打開的資源
os.close();
br.close();
is.close();
m_socket.close();
m_ServerSocket.close();
}
catch (UnknownHostException e)
{
e.printStackTrace();
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
二、Socket_Client.java
package socket;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class Socket_Client {
public static void main(String[] args) {
try{
// 創建一個客戶端對象m_socket,參數是地址和端口號
Socket m_socket=new Socket("localhost",5000);
// 通過輸出流發送請求
OutputStream os=m_socket.getOutputStream();
// 把信息存入到字節變量中,再發送。
String info="服務器,幫我查一下《駱駝祥子》的作者是誰?";
byte[] infos=info.getBytes();
os.write(infos);
// 先關閉socket連接
m_socket.shutdownOutput();
InputStream is=m_socket.getInputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(is));
String reply;
while((reply=br.readLine())!=null){
System.out.println("服務器的響應:"+reply);
}
// 關閉打開的資源
br.close();
is.close();
os.close();
m_socket.close();
}
catch (UnknownHostException e)
{
e.printStackTrace();
}
catch(IOException e)
{
e.printStackTrace();
}
}
}