Socket通信
来源:互联网 发布:mac优酷客户端 编辑:程序博客网 时间:2024/06/14 17:52
基于TCP的网络通信
1 .单个客户端和服务器的连接
服务器端代码
package com.cc.test;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;/** * 服务器端 * 基于TCP协议的网络通信实现用户登录 * @author Administrator * */public class Server {public static void main(String[] args) throws IOException {//1指定端口号ServerSocket serverSocket = new ServerSocket(8888);//2.accept等待客户端的连接 Socket socket =serverSocket.accept(); //3.获取输入流 ,读取客户端的信息 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); } //开启新的流的时候必须执行下面一条语句 socket.shutdownInput(); //对客户端进行响应 OutputStream os = socket.getOutputStream(); PrintWriter pw = new PrintWriter(os); pw.write("欢迎您的到来~~~~~"); pw.flush(); //最后关闭流 socket.close(); }}客户端代码
package com.cc.test;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintWriter;import java.net.Socket;import java.net.UnknownHostException;/** * 客户端 * @author Administrator * */public class Client {public static void main(String[] args) throws UnknownHostException, IOException {//创建客户端socket 并指定服务器地址和端口号Socket socket = new Socket("127.0.0.1", 8888);//获取输出流OutputStream os = socket.getOutputStream();PrintWriter pw = new PrintWriter(os);//包装成打印流pw.write("用户名:admin;密码:123");pw.flush();//刷新缓存//关闭流socket.shutdownOutput();//处理结果获得输入流InputStream is =socket.getInputStream();BufferedReader br = new BufferedReader(new InputStreamReader(is));String info = null ;while((info=br.readLine())!=null){System.out.println("客户端:得到服务器的消息"+info);}socket.close();}}2 多个客户端和一个服务器的通信
客户端
package com.cc.test;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintWriter;import java.net.InetAddress;import java.net.ServerSocket;import java.net.Socket;/** * 服务器端 * 基于TCP协议的网络通信实现用户登录 * @author Administrator * */public class Server {public static void main(String[] args) throws IOException {//1指定端口号ServerSocket serverSocket = new ServerSocket(8888);//记录连接客户端的数量int count = 0 ;Socket socket =null ;while(true){//2.accept等待客户端的连接socket =serverSocket.accept();//启用线程ServerThread serverThread = new ServerThread(socket);serverThread.start();count++;System.out.println("客户端连接数量"+count);InetAddress address =socket.getInetAddress();System.out.println("客户端的IP"+address.getHostAddress());} }}线程类
package com.cc.test;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintWriter;import java.net.Socket;public class ServerThread extends Thread{//与本线程相关的socketSocket socket = null ;public ServerThread(Socket socket) {this.socket=socket ;}@Overridepublic void run() {try {//3.获取输入流 ,读取客户端的信息 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); } //开启新的流的时候必须执行下面一条语句 socket.shutdownInput(); //对客户端进行响应 OutputStream os = socket.getOutputStream(); PrintWriter pw = new PrintWriter(os); pw.write("欢迎您的到来~~~~~"); pw.flush();} catch (IOException e) {e.printStackTrace();}finally {try {socket.close();} catch (IOException e) {e.printStackTrace();}}}}客户端
package com.cc.test;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintWriter;import java.net.Socket;import java.net.UnknownHostException;/** * 客户端 * @author Administrator * */public class Client {public static void main(String[] args) throws UnknownHostException, IOException {//创建客户端socket 并指定服务器地址和端口号Socket socket = new Socket("127.0.0.1", 8888);//获取输出流OutputStream os = socket.getOutputStream();PrintWriter pw = new PrintWriter(os);//包装成打印流pw.write("用户名:paul;密码:123");pw.flush();//刷新缓存//关闭流socket.shutdownOutput();//处理结果获得输入流InputStream is =socket.getInputStream();BufferedReader br = new BufferedReader(new InputStreamReader(is));String info = null ;while((info=br.readLine())!=null){System.out.println("客户端:得到服务器的消息"+info);}socket.close();}}
阅读全文
0 0
- Socket通信
- Socket通信
- socket通信
- Socket通信
- Socket通信
- socket通信
- socket通信
- socket通信
- socket 通信
- socket通信
- SOCKET通信
- Socket通信
- 通信 socket
- socket 通信
- socket通信
- socket通信
- socket通信
- socket通信
- 洛谷1633 二进制
- opencv-视频入门
- BufferedInputStream与BufferedOutputStream用法简介
- clone-graph Java code
- 在zxing带三方包里添加打开摄像头灯光功能
- Socket通信
- CCF CSP认证考试历年真题 模板生成系统 C语言实现
- 手把手教你将Vim改装成一个IDE编程环境(图文)
- python--map函数
- Validform验证时可以为空,否则按照指定格式验证
- Centos之Git版本管理工具安装-yellowcong
- python 实现单例模式的四种方法
- angular-简单的删除全选demo
- Google分享会