Java Socket接收和发送(字符串)

[java]  view plain copy
  1. 备注:必须先运行服务器端,然后运行客户端  
  2. 1.客户端  
  3. LoginClient.java  
  4. package pb.socket.LoginStr;  
  5.   
  6. import java.io.BufferedReader;  
  7. import java.io.IOException;  
  8. import java.io.InputStream;  
  9. import java.io.InputStreamReader;  
  10. import java.io.OutputStream;  
  11. import java.io.PrintWriter;  
  12. import java.net.Socket;  
  13. import java.net.UnknownHostException;  
  14.   
  15. public class LoginClient {  
  16.     public static void main(String[] args) {  
  17.         try {  
  18.             //1.建立客户端socket连接,指定服务器位置及端口  
  19.             Socket socket =new Socket("localhost",8800);  
  20.             //2.得到socket读写流  
  21.             OutputStream os=socket.getOutputStream();  
  22.             PrintWriter pw=new PrintWriter(os);  
  23.             //输入流  
  24.             InputStream is=socket.getInputStream();  
  25.             BufferedReader br=new BufferedReader(new InputStreamReader(is));  
  26.             //3.利用流按照一定的操作,对socket进行读写操作  
  27.             String info="用户名:Tom,用户密码:123456";  
  28.             pw.write(info);  
  29.             pw.flush();  
  30.             socket.shutdownOutput();  
  31.             //接收服务器的相应  
  32.             String reply=null;  
  33.             while(!((reply=br.readLine())==null)){  
  34.                 System.out.println("接收服务器的信息:"+reply);  
  35.             }  
  36.             //4.关闭资源  
  37.             br.close();  
  38.             is.close();  
  39.             pw.close();  
  40.             os.close();  
  41.             socket.close();  
  42.         } catch (UnknownHostException e) {  
  43.             e.printStackTrace();  
  44.         } catch (IOException e) {  
  45.             e.printStackTrace();  
  46.         }  
  47.     }  
  48. }  
  49. 2.服务器端  
  50. LoginServer.java  
  51. package pb.socket.LoginStr;  
  52.   
  53. import java.io.BufferedReader;  
  54. import java.io.IOException;  
  55. import java.io.InputStream;  
  56. import java.io.InputStreamReader;  
  57. import java.io.OutputStream;  
  58. import java.io.PrintWriter;  
  59. import java.net.ServerSocket;  
  60. import java.net.Socket;  
  61.   
  62. public class LoginServer {  
  63.     public static void main(String[] args) {  
  64.         try {  
  65.             //1.建立一个服务器Socket(ServerSocket)绑定指定端口  
  66.             ServerSocket serverSocket=new ServerSocket(8800);  
  67.             //2.使用accept()方法阻止等待监听,获得新连接  
  68.             Socket socket=serverSocket.accept();  
  69.             //3.获得输入流  
  70.             InputStream is=socket.getInputStream();  
  71.             BufferedReader br=new BufferedReader(new InputStreamReader(is));  
  72.             //获得输出流  
  73.             OutputStream os=socket.getOutputStream();  
  74.             PrintWriter pw=new PrintWriter(os);  
  75.             //4.读取用户输入信息  
  76.             String info=null;  
  77.             while(!((info=br.readLine())==null)){  
  78.                 System.out.println("我是服务器,用户信息为:"+info);  
  79.             }  
  80.             //给客户一个响应  
  81.             String reply="welcome";  
  82.             pw.write(reply);  
  83.             pw.flush();  
  84.             //5.关闭资源  
  85.             pw.close();  
  86.             os.close();  
  87.             br.close();  
  88.             is.close();  
  89.             socket.close();  
  90.             serverSocket.close();  
  91.         } catch (IOException e) {  
  92.             e.printStackTrace();  
  93.         }      
  94.     }  
  95. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值