Socket套接字的使用小例子
来源:互联网 发布:服装厂出货软件 编辑:程序博客网 时间:2024/05/20 02:30
Socket用来描述IP地址和端口,用来实现不同虚拟机或不同计算机之间的通信。下面是用java语言写的两个主函数,分别模拟服务器端和客户端。
ServerThread.java
public class ServerThread extends Thread { Socket socket = null; public ServerThread(Socket socket) { this.socket = socket; } @Override public void run() { InputStream is = null; InputStreamReader isr = null; BufferedReader br = null; OutputStream os = null; PrintWriter pw = null; try { // 获取客户端的请求信息 is = socket.getInputStream(); isr = new InputStreamReader(is); br = new BufferedReader(isr); String info = null; while((info=br.readLine())!=null) { System.out.println("我是服务端, 客户端说: " + info); } socket.shutdownInput(); // 向客户端发送信息: os = socket.getOutputStream(); pw = new PrintWriter(os); pw.write("欢迎您......."); pw.flush(); } catch (IOException e) { e.printStackTrace(); } finally { try { if(pw!=null) pw.close(); if(os!=null) os.close(); if(br!=null) br.close(); if(isr!=null) isr.close(); if(is!=null) is.close(); if(socket!=null) socket.close(); } catch (IOException e) { e.printStackTrace(); } } }}
Server.java
public class Server { public static void main(String[] args) { try { // 创建服务器端的Socket, ServerSocket, 指定绑定的端口, ServerSocket serverSocket = new ServerSocket(8888); System.out.println("服务端,正在等待客户端的响应......"); Socket socket = null; int count = 0; while(true) { // 调用accept()方法监听,等待客户端连接 socket = serverSocket.accept(); ServerThread serverThread = new ServerThread(socket); serverThread.start(); System.out.println(count++); } } catch (IOException e) { e.printStackTrace(); } }}
Client.java
public class Client { public static void main(String[] args) { try { // 客户端socket 包含服务器的URL和端口号 Socket socket = new Socket("localhost", 8888); // 向服务器发送请求 OutputStream os = socket.getOutputStream(); PrintWriter pw = new PrintWriter(os); pw.write("用户名:admin----密码:134323"); pw.flush(); socket.shutdownOutput(); // 获得服务端的响应内容 InputStream is = socket.getInputStream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String info = null; while((info = br.readLine()) != null) { System.out.println("客户端,服务端说: " + info); } // 关闭流 pw.flush(); os.close(); pw.close(); is.close(); isr.close(); br.close(); socket.close(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }}
0 0
- Socket套接字的使用小例子
- Socket之UDP套接字小例子
- socket套接字的使用
- 简单套接字socket例子
- C/S模式的socket套接字编程例子
- socket套接字使用的结构体
- Java套接字socket的使用
- socket套接字使用范例
- MFC小笔记之Socket套接字
- 使用socket实现服务器客户端即时通讯的小例子
- MFC的Socket套接字
- 使用socket套接字时的两点经验
- 使用socket套接字时的两点经验
- 使用Socket套接字绑定函数bind的一个细节
- 使用TCP/IP的套接字(Socket)进行通信
- 网络编程:InetAddress类,Socket套接字的使用
- 使用TCP/IP的套接字(Socket)进行通信
- 使用TCP/IP的套接字(Socket)进行通信
- 分享:libgdx调用平台原生UI提示信息
- C++ sort函数的用法
- 多线程
- Shell打印echo和printf
- 不让EditView自动获取焦点
- Socket套接字的使用小例子
- vala
- jquery 窗口变化是调用函数
- HDU3436[离散化splay]
- C#中使用DirectSound录音
- SVM入门(十)将SVM用于多类分类
- iOS自定义分享 (一)分享组件的接入
- Bias和Variance 区别
- Cordova学习笔记