嗯,Socket通信机制中,在客户端是Socket 在服务器端有ServerSocket通过监听等待有请求就生成一个Socket。Socket就像码头一样发送数据,从客户端Socket到服务器端Socket,从服务器端到客户端,通过InputStream与OutputStream流来沟通。- public class SocketClient {
- public static void main(String[] args) {
- try
- {
-
- Socket s=new Socket("127.0.0.1",8001);
- InputStream ips=s.getInputStream();
- OutputStream ops=s.getOutputStream();
- BufferedReader brNet=new BufferedReader(new InputStreamReader(ips));
- System.out.println(brNet.readLine());//打印从服务器传来的字符串
- PrintWriter pw=new PrintWriter(ops,true);
- BufferedReader brkey=new BufferedReader(new InputStreamReader(System.in));
- //包装从键盘输入的字符流
- while(true)
- {
- String strWord=brkey.readLine();
- pw.println(strWord);
- if(strWord.equals("quit"))
- {
- break;
- }
- System.out.println(brNet.readLine());
- }
- }
- catch(Exception e)
- {
- e.printStackTrace();
- }
- }
- }
- public class SocketServer {
- public static void main(String [] args)
- {
- boolean running=true;
- ServerSocket serversocket;//建立服务器端引用
- try
- {
- serversocket=new ServerSocket(8001);//指定服务器端监听端口号
- while(running)
- {
- Socket socket=serversocket.accept();//一直监听连接请求
- InputStream is=socket.getInputStream();//获得输入流
- OutputStream os=socket.getOutputStream();//获得输出流
- BufferedReader br=new BufferedReader(new InputStreamReader(is));
- //包装输入流
- PrintWriter pw=new PrintWriter(os);//包装输出流
- pw.println("连接成功");
- }
- serversocket.close();
- }
- catch(Exception e)
- {
- e.printStackTrace();
- }
-
- }
- }
复制代码 |