java网络编程(TCP详解)

网络编程详解-TCP

一,TCP协议的特点
面向连接的协议(有发送端就一定要有接收端)

通过三次连接握手建立连接

通过四次握手断开连接

基于IO流传输数据

传输数据大小没有限制

速度慢但可靠

二,TCP协议相关的两个类
Socket(一个socket对象表示一个客户端对象)
常用构造方法介绍

Socket(String host, int port)

host参数为服务器的ip地址字符串

port参数为服务器的端口号

大家记忆的时候可以使用这一种记忆方式 :记住socket是个客户端对象就可以了,参数就想socket对象既然是客户端对象他就需要连接服务器,那么他需要什么呢,连接服务器肯定需要服务端的IP和地址才能够连接。

三,常用方法介绍

OutputStream getOutputStream() 获取字节输出流(该字节输出可以向服务端输出数据,只能获取一次,调用该方法多少次,获取到的还是同一个对象)
InputStream getInputStream() 获取字节输入流(该字节输入流可以读取服务器端方式过来的数据,只能获取一次,调用该方法多少次,获取到的还是同一个对象)
void shutdownOutputStream() 关闭输出流(在socket里面作用就是告诉服务器端,数据已经传输完成,调用该方法以后获取到的输出流就不能使用了)
void close() 关闭资源
int getPort() 获取服务器端的端口
InetAddress getInetAddress()

四,获取服务器端的IP地址对象

ServerSocket(一个该类对象就代表一个服务端对象)
常用构造方法介绍

ServerSocket(int port)

port参数为服务端的端口号

常用方法介绍

Socket accept() 等待客户端连接,获取一个客户端对象
InteAddress getInteAdderss() 获取连接的客户端的ip对象

五,网络编程(TCP-服务端响应客户端)代码

1.客户端代码

2 .将客户登录信息放在在User.Properties文件中,持久化信息库

3.服务器端代码

java容器和数据结构详解:链接:https://pan.baidu.com/s/1jR9neu9JuTy4UpBN1p83bQ 提取码:lutu

Original: https://www.cnblogs.com/jixia/p/10242520.html
Author: 稷下
Title: java网络编程(TCP详解)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/588592/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • JavaPersistenceWithMyBatis3笔记-第5章Configuring MyBatis in a Spring applications-001

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年5月29日
    082
  • spring数据验证

    一般情况下,我们并不推荐在服务端做基础的数据校验,因为这有一个很主要的问题:它加重了服务器的负载,如果并发多,这种负载就更加明显。 如果我们跟踪一个简单的Controller方法执…

    Java 2023年6月9日
    068
  • 字典服务的设计与管理

    编码问题,谁不想避其锋芒; 一、业务背景 在搜索引擎的功能上,曾经遇到过这样一个问题,数据库中某个公司名称中存在特殊编码,尽管数据已经正常同步到索引中,但是系统中关键词始终也无法匹…

    Java 2023年6月15日
    077
  • 实现艾尔登法环中的大卢恩效果

    使用顶点动画中的广告牌技术(Billboarding),来实现大卢恩在竖直方向上保持始终朝向玩家的效果。 1、广告牌技术原理 广告牌技术会根据视角方向来旋转一个被纹理着色的多边形,…

    Java 2023年6月9日
    098
  • CPU流水线与指令乱序执行

    青蛙见了蜈蚣,好奇地问:”蜈蚣大哥,我很好奇,你那么多条腿,走路的时候先迈哪一条啊?” 蜈蚣听后说:”青蛙老弟,我一直就这么走路,从没想过先迈哪…

    Java 2023年6月7日
    083
  • 无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]

    在项目的lib和tomcat的lib目录下分别增加所需的JSTLjar文件然后重启项目 Original: https://www.cnblogs.com/recorderM/p/…

    Java 2023年6月5日
    079
  • MySQL的(@i:=@i+1)用处及用法

    作用 (@i:=@i+1):查询结果中新增一列自动生成的序列号,代表定义一个变量,每次叠加1; 示例 一个基本的查询及结果: SELECT * FROM student; 添加(@…

    Java 2023年6月8日
    080
  • 最简单的单线程变多线程的例子

    最简单的单线程变多线程的例子 背景 不知道你项目里有么有这样一个函数,这个函数里调用了大概十几来个函数,这十几个函数依次的从头写到位,而且这几个函数都是相对独立的,谁先执行谁后执行…

    Java 2023年6月8日
    083
  • spring源码分析——事务的传播机制

    1: REQUIRED(默认),如果不配置传播属性,默认就是required属性,如果当前有事务就加入加入该事务 ,如果没有就新创建一个事务 准备两个类,TestOuterServ…

    Java 2023年5月30日
    0102
  • 【WPF】Image控件显示Gif图片

    前端使用: 不知道是不是我图片问题,循环播放的时候,起始的位置总会有闪一下。不知道怎么解决。 参考文章: https://blog.csdn.net/weixin_30628077…

    Java 2023年5月29日
    073
  • 服务端高并发分布式架构演进之路

    1. 概述 本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了…

    Java 2023年5月30日
    073
  • 用Java中的File类模拟实现对系统文件的增删改查效果

    码字不易,三连支持一波吧 😃 IO操作向来是各大语言的热区,而对文件的操作也是重中之重。那么在Java中也给我们提供了很多关于文件操作的类。今天我就用一个比较基本的 File类来模…

    Java 2023年6月7日
    079
  • 啥是Session?

    什么是 Session 会话? 1、Session 就一个接口(HttpSession)。2、Session 就是会话。它是用来维护一个客户端和服务器之间关联的一种技术。3、每个客…

    Java 2023年6月15日
    050
  • 找rpm包

    对于不能yum连网安装的服务器,必须通过rpm包下载,可以通过如下方法下载: 1、在可以连网的centos中运行如下命令,下载工具包 yum install yum-plugin-…

    Java 2023年5月29日
    066
  • 如何控制多线程执行顺序

    package com.thread; import java.util.concurrent.ExecutorService; import java.util.concurre…

    Java 2023年5月30日
    0106
  • 起飞,会了这4个 Intellij IDEA 调试魔法,阅读源码都简单了

    前言 上一篇文章 IntelliJ IDEA 高级调试之Stream Trace 算是 IntelliJ IDEA 高级调试技巧的开胃菜,小伙伴们被这个小技巧征服,趁热打铁,今天给…

    Java 2023年6月5日
    097
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球