seo网站策划书,网站m3u8链接视频怎么做的,网站建设设计平台,揭阳seo快速排名文章目录 前言一、TCP协议程序是什么#xff1f;二、使用步骤 1.服务器端与客户端2.实操展示总结 前言 TCP网络程序设计是指利用Socket类编写通信程序。利用TCP协议进行通讯的两个应用程序是有主次之分的#xff0c;一个称为服务器程序#xff0c;另一个称为客户机程序…文章目录 前言一、TCP协议程序是什么二、使用步骤 1.服务器端与客户端2.实操展示总结 前言 TCP网络程序设计是指利用Socket类编写通信程序。利用TCP协议进行通讯的两个应用程序是有主次之分的一个称为服务器程序另一个称为客户机程序两者的功能和编写方法不太一样。必须先启动服务器程序调用accept()方法等待客户机程序启动连接起服务器程序和客户机程序的就是相同的端口。 一、TCP协议程序是什么 TCP网络程序协议是一种基于传输控制协议TCP的网络通信协议。 它定义了在计算机网络上进行通信时如何建立、维护和关闭连接以及如何传输数据的规则和约定。TCP网络程序协议提供了可靠的、面向连接的数据传输服务确保数据的正确性和有序性。 TCP协议基础是通过套接字socket建立的。 它是Internet上最常用的协议之一被广泛应用于Web浏览、电子邮件、文件传输、远程登录等网络应用中。举个例子我们使用的QQ和微信这些通信软件都离不开TCP协议程序。
二、使用步骤
1.服务器端与客户端 1服务器套接字ServerSocket类 ServerSocket类的语法
ServerSocket 对象 new ServerSocket();
//创建非绑定服务器套接字无指定端口和地址ServerSocket 对象 new ServerSocket(int port);
//创建绑定特定端口的服务器套接字ServerSocket 对象 new ServerSocket(int port,int backlog);
//利用backlog创建服务器套接字并将其绑定到本地端口号上ServerSocket 对象 new ServerSocket(int port,int backlog,InetAddress bindAddress);
/*使用指定的端口、侦听backlog和要绑定到的本地IP地址创建服务器。这种情况适用于计算机上有多块网卡和多个IP地址的情况用户可以明确规定ServerSocket在哪块网卡或哪个IP地址上等待客户的连接请求。 */ 我们输入的端口值就是设定该服务器的接入端口任何客户机都需要使用这个端口值才能申请接入此服务器。 ServerSocket类的常用方法 方法功能描述返回类型isBound()判断ServerSocket是否处于绑定状态booleanbind(SocketAddress endpoint)将ServerSocket绑定到特定地址IP地址和端口号voidaccept()等待客户端的连接返回成功连接的Socket对象SocketgetInetAddress()返回此服务器套接字的本地地址intisClosed()查看服务器套接字是否关闭booleanclose()关闭服务器套接字void accept()方法会阻塞线程的继续执行直到接收到客户端的呼叫。如果没有客户端呼叫服务器那么线程仍处于阻塞状态后面的代码不会执行。这时我们运行客户端代码后阻塞状态结束 若没有客户端运行产生客户请求,accept()方法也没有让线程阻塞那么程序出了问题。可能是使用了一个被其他程序占用的端口号或者ServerSocket绑定没有成功之类的。 2客户端套接字Socket类 Socket类的语法
Socket 对象 new Socket(String host,int port);
//创建一个连接到指定主机和端口的套接字
//host是服务器的IP地址或主机名port是服务器上正在监听的端口号。Socket 对象 new Socket(InetAddress address,int port);
//使用InetAddress对象创建一个连接到指定地址和端口的套接字Socket 对象 new Socket(String host,int portInetAddress localAddr,int localPort);
//创建一个连接到指定主机和端口的套接字并指定本地地址和端口
//localAddr是本地地址localPort是本地端口Socket 对象 new Socket(InetAddress address,int port,InetAddress localAddr,int localPort);
//使用InetAddress对象创建一个连接并指定本地地址和端口 以上为Socket对象的创建方法其中第一个最常使用。 Socket类的常用方法 方法功能描述返回类型getInputStream()返回与此套接字连接的输入流用于读取从服务器发送的数据InputStreamgetOutputStream()返回与此套接字连接的输出流用于向服务器发送数据OutputStreamclose()关闭此套接字并释放与之关联的资源voidisConnected()判断此套接字是否已经连接到远程主机booleanisClosed()判断此套接字是否已关闭booleansetSoTimeout(int timeout)设置套接字的超时时间以毫秒为单位。如果指定时间内没有数据可以抛出SocketTimeoutException异常voidconnect(SocketAddress endpoint)连接到指定的地址voidconnect(SocketAddress endpoint,int timeout)连接到指定的地址,并设置连接超时时间void
2.实操展示 TCP程序设计流程 所谓启动服务器、客户端指的是运行相应的程序关闭客户端、服务器也是指相应的实例化对象调用close()方法进行套接字关闭。 注意该实操展示写了两个java文件一个为服务器代码另一个为客户端代码两个文件各自先后运行实现数据交互。 1服务器端代码
import java.net.Socket;
import java.net.ServerSocket;
import java.io.InputStream;
public class Demo9 { private InputStream inputStream; private ServerSocket server; private Socket socket; void server(){ try { server new ServerSocket(1024); System.out.println(服务器端口已建立等待用户端连接...); socket server.accept(); //等待用户接入 inputStream socket.getInputStream();byte b[] new byte[1024];int len inputStream.read(b);String string new String(b,0,len);System.out.println(来自客户端的消息string);System.out.println(客户端IPsocket.getInetAddress());} catch (Exception e) { e.printStackTrace(); }finally{inputStream.close();server.close();} } public static void main(String[] args) { Demo9 demo9 new Demo9(); demo9.server(); }
} 创建服务器套接字并设定端口号为1024。使用accept()方法监听客户端的申请。再通过ServerSocket类的getInputStream()方法和IO输入流读取客户端发来的信息。最后根据socket对象获取发送信息的客户机的公共IP地址。最后关闭各种流释放系统资源。 2客户机端代码
import java.net.Socket;
import javax.swing.JFrame;
import java.io.OutputStream;public class Demo10 extends JFrame{private OutputStream out;private Socket socket;private void connect(){System.out.println(尝试与服务器连接...);try {socket new Socket(127.0.0.1, 1024);String string 向服务器输送数据中...;out socket.getOutputStream();out.write(string.getBytes());System.out.println(接入成功);} catch (Exception e) {e.printStackTrace();}finally{out.close();socket.close();}}public static void main(String[] args) {Demo10 demo10 new Demo10();demo10.connect();}} 创建客户机套接字实例化时输入目标主机的公共IP地址和开放的端口号。使用getOutputStream()方法和IO输出流的write()方法向服务器输入数据。最后关闭各种流释放系统资源。 运行结果 运行服务器代码服务器端启动等待客户端接入 运行客户端代码客户端启动接入服务器发送数据 此时再去查看服务器处终端的反馈 如上图所示“向服务器输送数据中...”这段字符串就是从客户端向服务器发过来的通过IO流。 而发送这条信息的客户端正是我自己的笔记本。我的笔记本既是服务器又是客户端所以当服务器终端输出发送数据的客户端的IP地址就是我的本地主机地址当然我也可以显示为我的公共IP地址。 总而言之获取到客户端的信息并且可以获取到该客户端的公共IP地址。 总结 以上就是TCP协议的程序设计本文简单介绍如何搭建TCP程序而TCP程序在开发应用程序搭建网站尤其对于网络通信提供了大量快速便捷的的函数和方法。如果有补充或者指正的内容欢迎读者在评论区中留言。