你的位置:首页 > 软件开发 > Java > 网络编程——基于TCP协议的Socket编程,基于UDP协议的Socket编程

网络编程——基于TCP协议的Socket编程,基于UDP协议的Socket编程

发布时间:2016-05-11 01:00:12
Socket编程目前较为流行的网络编程模型是客户机/服务器通信模式客户进程向服务器进程发出要求某种服务的请求,服务器进程响应该请求。如图所示,通常,一个服务器进程会同时为多个客户端进程服务,图中服务器进程B1同时为客户进程A1、A2和B2提供服务。 Socket概述① ...

网络编程——基于TCP协议的Socket编程,基于UDP协议的Socket编程

Socket编程

目前较为流行的网络编程模型是客户机/服务器通信模式

客户进程向服务器进程发出要求某种服务的请求,服务器进程响应该请求。如图所示,通常,一个服务器进程会同时为多个客户端进程服务,图中服务器进程B1同时为客户进程A1、A2和B2提供服务。

 

网络编程——基于TCP协议的Socket编程,基于UDP协议的Socket编程

Socket概述

①   所谓Socket通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过“套接字”向网络发出请求或者应答网络请求。

②   Socket是连接运行在网络上的两个程序间的双向通信的端点。

③   网络通讯其实指的就是Socket间的通讯。

④   通讯的两端都有Socket,数据在两个Socket之间通过IO来进行传输。

 

使用Socket进行网络通信的过程

①   服务器程序将一个套接字绑定到一个特定的端口,并通过此套接字等待和监听客户的连接请求。

②   客户程序根据服务器程序所在的主机和端口号发出连接请求。

③   如果一切正常,服务器接受连接请求。并获得一个新的绑定到不同端口地址的套接字。

④   客户和服务器通过读、写套接字进行通讯。

网络编程——基于TCP协议的Socket编程,基于UDP协议的Socket编程

 

基于TCP协议的Socket编程

①   创建TCP服务端步骤:

a)         创建一个ServerSocket对象

b)         调用accept()方法接受客户端请求

c)         从Socket中获取I/O流

d)         对I/O流进行读写操作,完成与客户端的交互

e)         关闭I/O流和Socket

②   创建TCP客户端步骤:

a)         创建一个Socket对象

b)         从Socket中获取I/O流

c)         对I/O流进行读写操作,完成与服务端的交互

d)         关闭I/O流和Socket

注:客户端和服务端进行数据传输时,客户端的输入流对应服务端的输出流,客户端的输出流对应服务端的输入流。

 

示例:创建一个客户端与服务端通信的例子

包名:com.iotek.tcpsocket

服务端:

 1     // 1.创建一个ServerSocket对象 2     ServerSocket serverSocket = new ServerSocket(8888); 3     // 2.调用accept()方法接受客户端请求 4     Socket socket = serverSocket.accept(); 5     System.out.println(socket.getInetAddress().getHostAddress() + "连接成功"); 6     // 3.获取socket对象的输入输出流 7     BufferedReader br = new BufferedReader(new InputStreamReader( 8         socket.getInputStream())); 9 10     PrintWriter pw = new PrintWriter(socket.getOutputStream(), true);11     String line = null;12     // 读取客户端传过来的数据13     while ((line = br.readLine()) != null) {14       if (line.equals("over")) {15         break;16       }17       System.out.println(line);18       pw.println(line.toUpperCase());19     }20 21     pw.close();22     br.close();23     socket.close();24     System.out.println(socket.getInetAddress().getHostAddress() + "断开连接");

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:网络编程——基于TCP协议的Socket编程,基于UDP协议的Socket编程

关键词:网络

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。