Socket实现TCP编程
来源:互联网 发布:单片机LED接线 编辑:程序博客网 时间:2024/04/19 06:01
Socket简介
Socket通信
TCP协议是面向连接的、可靠的、有序的、面向字节流的方式发送数据
基于TCP协议实现网络通信的类
- 客户端的Socket类
- 服务器端的ServerSocket类
Socket通信模型
Socket通信实现步骤
- 创建ServerSocket和Socket
- 打开连接到Socket的输入/输出流
- 按照协议对Socket进行读/写操作
- 关闭输入输出流、关闭Socket
服务器端
- 创建ServerSocket对象,绑定监听端口
- 通过accept()方法监听客户端请求
- 连接建立后,通过输入流读取客户端发送的请求信息
- 通过输出流向客户端发送响应信息
- 关闭相关资源
public class Server{ public static void main(String[] args){ try{ //1.创建一个ServerSocket,指定绑定的端口,并监听此端口 ServerSocket ss = new ServerSocket(8888); //2.调用accept()开始监听,等待客户端连接 Socket socket = ss.accept(); //3.获取输入流,读取客户端信息 InputStream is = socket.getInputStream(); //4.提升性能,放入字符流中 InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String info = null; while((info=br.readLine()) != null){ System.out.println("我是服务器,客户端说:"+info); } //5.关闭相关资源 socket.shutdownInput(); br.close(); isr.close(); is.close(); socket.close(); ss.close(); } }}
客户端
- 创建Socket对象,指明需要连接的服务器地址和端口号
- 建立连接后,用输出流向服务器发送请求信息
- 通过输入流读入服务器的响应信息
- 关闭相关资源
public class Client{ public static void main(String[] args){ //1.创建Socket,指定地址和端口 Socket socket = new Socket("127.0.0.1",8888); //2.获取输出流,向服务器发送信息 OutputStream os = socket.getOutputStream(); //将输出流包装为字符流 PrintWriter pw = new PrintWriter(os); pw.write("用户名:123;密码:abc"); pw.flush(); //关闭输出流 socket.shutdownOutput(); pw.close(); os.close(); socket.close(); }catch(UnknowHostException e){ e.printStackTrace(); }catch(IOException e){ e.printStackTrace(); }}
先启动服务器,再启动客户端
0 0
- Socket实现TCP编程
- TCP socket编程实现
- 通过Socket实现TCP编程
- 通过Socket实现TCP编程
- JAVA Socket 实现 TCP 编程
- 编程实现基于tcp的socket编程
- socket 编程 TCP 实现简单聊天功能
- C语言socket编程----实现TCP通信
- JAVA 通过 Socket 实现 TCP 编程
- 通过Socket实现单次TCP编程
- Java通过Socket实现TCP编程
- JAVA 通过 Socket 实现 TCP 编程
- JAVA 通过 Socket 实现 TCP 编程
- JAVA 通过 Socket 实现 TCP 编程
- 网络编程----------SOCKET编程实现简单的TCP协议
- Socket编程练习(TCP)
- SOCKET TCP 编程
- Socket-TCP编程
- RecyclerView:带header&footer&加载更多
- 用户登录记住密码
- 【Linux网络编程】IO模型与服务器模型
- TabLayout和ViewPager结合使用
- QuadView贝塞尔View
- Socket实现TCP编程
- Android App状态栏变色:ColorfulStatusBar
- 图片浏览zoom效果
- 多线程(十八)AQS(四):CLH同步队列
- 深入Java集合系列之三:HashMap
- 单手操作图片控件 镜像、置顶、缩放、移动:StickerView
- 【工具】IAR FOR ARM 破解方法
- 隐藏底部虚拟键NavigationBar实现全屏
- 大数加法