socket 小例子
来源:互联网 发布:js 获取多个class 编辑:程序博客网 时间:2024/04/29 05:37
public class Client { public static void main(String[] args) throws Exception{ //客户端请求与本机在2017端口建立起TCP连接 Socket client = new Socket("127.0.0.1",2017); client.setSoTimeout(10000); //获取键盘输入 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); //获取socket的输出流,用来发送数据到服务端 PrintStream out = new PrintStream(client.getOutputStream()); //获取socket输入流,用来接受服务端数据 BufferedReader buf = new BufferedReader(new InputStreamReader(client.getInputStream())); boolean flag = true; while (flag){ System.out.println("输入信息:"); String str = reader.readLine(); //发送数据到服务端 out.println(str); if("bye".equals(str)){ flag = false; }else { try{ //从服务器端接受数据有个时间限制(系统自设,也可以自己设置),超过了这个时间便会抛出异常 String echo = buf.readLine(); System.out.print(echo); }catch (Exception e){ System.out.println("Time out,No response"); } } } reader.close(); if(client != null){ //如果构造函数建立起连接,则关闭套接字,如果没有建立连接自然不用关闭 client.close();//只关闭socket,它关联的输入流、输出流也会关闭 } }}
public class Server { public static void main(String[] args) throws Exception{ //服务端在2017端口监听客户端请求TCP连接 ServerSocket serverSocket = new ServerSocket(2017); Socket client = null; boolean f = true; while (f){ client = serverSocket.accept(); System.out.println("与客户端连接成功!"); //为每个客户端连接开启一个连接 new Thread(new ServerThread(client)).start(); } serverSocket.close(); }}
public class ServerThread implements Runnable{ private Socket socket = null; public ServerThread(Socket socket) { this.socket = socket; } @Override public void run() { try{ //获取socket的输出流,用来向客户端发数据 PrintStream out = new PrintStream(socket.getOutputStream()); //获取socket的输入流,用来接受客户端发送过来的数据 BufferedReader buf = new BufferedReader(new InputStreamReader(socket.getInputStream())); boolean flag = true; while (flag){ //接受从客户端发送过的数据 String str = buf.readLine(); if(str == null || "".equals(str)){ flag = false; }else { if("bye".equals(str)){ flag = false; }else{ //将接受到的字符串前面加上"echo",发送到对应客户端 out.println("echo:"+str); } } } out.close(); socket.close(); }catch (Exception e){ e.printStackTrace(); } }}
阅读全文
0 0
- Socket小例子
- java socket小例子
- socket简单小例子
- socket简单小例子
- socket简单小例子
- socket简单小例子
- socket简单小例子
- socket简单小例子
- socket简单小例子
- linux socket 小例子
- Socket小例子
- socket通道小例子
- socket 小例子
- python socket 小例子
- socket简单小例子socket简单小例子
- socket简单小例子socket简单小例子
- 一个Socket通信小例子
- java socket编程小例子
- socket C/C++编程(1)通过服务器的外网ip,对服务器进行远程端口的登录访问(以win10客户端远程访问外网ubuntu服务器为例)
- @Autowired与@Resource的区别
- 第十八周:[Leetcode]104. Maximum Depth of Binary Tree
- kali linux 命令集
- Ajax 请求全局事件.ajaxSuccess() .ajaxComplete() .ajaxSend()
- socket 小例子
- 优秀的前端工程师该考虑的
- 树状数组(BIT)
- eclipse远程码云仓库失败问题
- CentOS-CentOS防火墙开启、关闭、查看状态
- Labview笔记_为何chart 图表不能显示二维数组的图线
- URAL1970
- 错题
- 调通sina33下的AP6212A0(WIFI+BT)(分色排版)V1.3(android4.4.2)