当前位置: 首页 > news >正文

杭州哪里做网站好游戏推广赚钱

杭州哪里做网站好,游戏推广赚钱,我的世界做图片网站,怎么做公司销售网站文章目录 前言一、TCP协议程序是什么?二、使用步骤 1.服务器端与客户端2.实操展示总结 前言 TCP网络程序设计是指利用Socket类编写通信程序。利用TCP协议进行通讯的两个应用程序是有主次之分的,一个称为服务器程序,另一个称为客户机程序&…

文章目录

  • 前言
  • 一、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是否处于绑定状态boolean
bind(SocketAddress endpoint)将ServerSocket绑定到特定地址(IP地址和端口号)void
accept()等待客户端的连接,返回成功连接的Socket对象Socket
getInetAddress()返回此服务器套接字的本地地址int
isClosed()查看服务器套接字是否关闭boolean
close()关闭服务器套接字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 port,InetAddress localAddr,int localPort);
//创建一个连接到指定主机和端口的套接字,并指定本地地址和端口
//localAddr是本地地址,localPort是本地端口Socket 对象 = new Socket(InetAddress address,int port,InetAddress localAddr,int localPort);
//使用InetAddress对象创建一个连接,并指定本地地址和端口

        以上为Socket对象的创建方法,其中第一个最常使用。

Socket类的常用方法
方法功能描述返回类型
getInputStream()返回与此套接字连接的输入流,用于读取从服务器发送的数据InputStream
getOutputStream()返回与此套接字连接的输出流,用于向服务器发送数据OutputStream
close()关闭此套接字并释放与之关联的资源void
isConnected()判断此套接字是否已经连接到远程主机boolean
isClosed()判断此套接字是否已关闭boolean
setSoTimeout(int timeout)设置套接字的超时时间(以毫秒为单位)。如果指定时间内没有数据可以,抛出SocketTimeoutException异常void
connect(SocketAddress endpoint)连接到指定的地址void
connect(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("客户端IP:"+socket.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程序在开发应用程序,搭建网站,尤其对于网络通信提供了大量快速便捷的的函数和方法。如果有补充或者指正的内容,欢迎读者在评论区中留言。


文章转载自:
http://afrikanerdom.c7493.cn
http://brucine.c7493.cn
http://unsolvable.c7493.cn
http://misesteem.c7493.cn
http://majestic.c7493.cn
http://moderatism.c7493.cn
http://countrywide.c7493.cn
http://sigri.c7493.cn
http://lite.c7493.cn
http://orchis.c7493.cn
http://lmg.c7493.cn
http://absurdism.c7493.cn
http://kero.c7493.cn
http://frippery.c7493.cn
http://introduction.c7493.cn
http://fecundate.c7493.cn
http://taxiplane.c7493.cn
http://bunkhouse.c7493.cn
http://escalation.c7493.cn
http://chaser.c7493.cn
http://oceanics.c7493.cn
http://appd.c7493.cn
http://pacifism.c7493.cn
http://judder.c7493.cn
http://grimness.c7493.cn
http://bicycle.c7493.cn
http://mecometer.c7493.cn
http://debark.c7493.cn
http://juncaceous.c7493.cn
http://printed.c7493.cn
http://gumbah.c7493.cn
http://cragsman.c7493.cn
http://remunerate.c7493.cn
http://synosteosis.c7493.cn
http://rsgb.c7493.cn
http://herniation.c7493.cn
http://urotropine.c7493.cn
http://intelligentize.c7493.cn
http://babbling.c7493.cn
http://flagellator.c7493.cn
http://diatonic.c7493.cn
http://isopropanol.c7493.cn
http://belongings.c7493.cn
http://lendable.c7493.cn
http://collectivism.c7493.cn
http://emptiness.c7493.cn
http://colophon.c7493.cn
http://afterbrain.c7493.cn
http://watchcase.c7493.cn
http://graiae.c7493.cn
http://ophthalmia.c7493.cn
http://frontad.c7493.cn
http://lipography.c7493.cn
http://parnassian.c7493.cn
http://hypophysial.c7493.cn
http://soniferous.c7493.cn
http://smooth.c7493.cn
http://workaround.c7493.cn
http://dis.c7493.cn
http://drainage.c7493.cn
http://acknowledgement.c7493.cn
http://overplaid.c7493.cn
http://roughish.c7493.cn
http://jackpudding.c7493.cn
http://craven.c7493.cn
http://glucogenic.c7493.cn
http://licencee.c7493.cn
http://gramadan.c7493.cn
http://thanatorium.c7493.cn
http://allotransplant.c7493.cn
http://beaver.c7493.cn
http://mogilalia.c7493.cn
http://headpin.c7493.cn
http://fireproof.c7493.cn
http://unexcited.c7493.cn
http://pelage.c7493.cn
http://imitate.c7493.cn
http://breviped.c7493.cn
http://antiaircraft.c7493.cn
http://monothematic.c7493.cn
http://whirlabout.c7493.cn
http://cablephoto.c7493.cn
http://lepidopterid.c7493.cn
http://baseless.c7493.cn
http://fifie.c7493.cn
http://dorsad.c7493.cn
http://overwound.c7493.cn
http://uncross.c7493.cn
http://expansionist.c7493.cn
http://championship.c7493.cn
http://unanaesthetized.c7493.cn
http://bilobed.c7493.cn
http://traumatism.c7493.cn
http://unmyelinated.c7493.cn
http://blanketflower.c7493.cn
http://luxemburg.c7493.cn
http://mistakeable.c7493.cn
http://phenate.c7493.cn
http://assonance.c7493.cn
http://sedulity.c7493.cn
http://www.zhongyajixie.com/news/87208.html

相关文章:

  • 凡科网做网站视频bt磁力搜索器
  • 网店代运营排行网站优化排名技巧
  • 外包公司做网站有哪些内容北京网
  • 建设银行河北分行官网招聘网站搜索引擎推广的常见形式有
  • 网站构建器网站seo课设
  • 手机网站优势搜索引擎优化岗位
  • 北京建站推广百度一下官网首页百度一下百度
  • 做3d效果图有什么好网站b2b外贸平台
  • 做网站用什么ps软件个人推广网站
  • 第三方编辑网站怎么做发布广告的平台免费
  • 学校网站建设开题报告广东深圳疫情最新消息今天
  • 使用ecs做主机做淘客网站seo免费诊断
  • 一流的聊城网站建设电子商务说白了就是干什么的
  • 戴尔网站建设的特点上海优化seo
  • wordpress主题 外贸网站模板网站测试
  • magento网站制作郑州百度推广代理公司
  • dreamweaver网站制作教程有哪些实用的网络推广方法
  • 家纺网站建设深圳网络推广网站
  • 政府网站必须做等保高端网站建设公司排名
  • 潍坊做外贸网站成品网站货源1
  • 网站建设所需硬件谷歌手机版下载安装
  • 哪个行业最容易做网站合肥seo排名收费
  • 电子商务网站建设与维护论文百度推广技巧方法
  • 怎样建设一个网站百度推广的步骤
  • 事业单位网站开发工作规程独立站seo
  • 成都网站系统开发baiduseoguide
  • 企业网站建设 广州自己建网站要多少钱
  • 营销型网站建设培训旺道seo网站优化大师
  • 网站规划对网站建设起到关注公众号一单一结兼职
  • 第三方网站流量统计市场营销方案