TCP(socket 套接字)编程 1

一、TCP套接字编程架构如下

TCP

二、相关代码实现

1、服务器端代码

package com.company;import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;public class Main {public static void main(String[] args) {
// write your code heretry {//创建服务,并监听特定的端口,设置TCP链接队列长度//backlog可以设置队列的长度,成功创建链接的会被存储到此全连接队列中,等待线程调用accept方法将其从中一个一个移出ServerSocket serverSocket = new ServerSocket(8081,3);System.out.println("服务开始进行监听,监听端口为8081");int i=1;while(true){//从全连接队列中移出一个连接Socket socket = serverSocket.accept();byte[] byet1=new byte[20];try {socket.getInputStream().read(byet1);String str =new String(byet1);System.out.println(str);InetSocketAddress  socketAddress=(InetSocketAddress)socket.getRemoteSocketAddress();System.out.println(socketAddress.getHostName()+"   "+socketAddress.getPort());//socket.close();} catch (IOException e) {e.printStackTrace();}try {Thread.sleep(50000);socket.close();} catch (InterruptedException e) {e.printStackTrace();}}} catch (IOException e) {e.printStackTrace();}}
}
  • 1、创建服务,并监听特定的端口,设置TCP链接队列长度;
  • 2、backlog可以设置队列的长度,成功创建链接的会被存储到此全连接队列中,等待线程调用accept方法将其从中一个一个移出;

2、客户端代码

package com.company;import java.io.IOException;
import java.net.Socket;
import java.nio.charset.StandardCharsets;public class Main {public static void main(String[] args) {// write your code herebyte [] byte2= new byte[20];int i=1;String string="hello world";for(;i<3;i++){try {String str=string+i;byte2= string.getBytes(StandardCharsets.UTF_8);Socket socket =new Socket("127.0.0.1",8081);System.out.println(socket.getLocalAddress().getHostAddress()+"   "+socket.getLocalPort());socket.setKeepAlive(true);System.out.println(str);socket.getOutputStream().write(byte2);Thread.sleep(10000);} catch (IOException | InterruptedException e) {e.printStackTrace();}}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/563096.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端学习之css 定位与浮动

定位 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>定位和浮动</title><style>*{/* 将模块紧紧贴着浏览器边框 */margin: 0;}.c{background-color: blueviolet;width: 100px;height: 1…

阿里云2核4G服务器优惠价格30元、165元和199元1年,轻量和ECS

阿里云2核4G服务器租用优惠价格&#xff0c;轻量2核4G服务器165元一年、u1服务器2核4G5M带宽199元一年、云服务器e实例30元3个月&#xff0c;活动链接 aliyunfuwuqi.com/go/aliyun 活动链接如下图&#xff1a; 阿里云2核4G服务器优惠价格 轻量应用服务器2核2G4M带宽、60GB高效…

【数据结构初阶】之堆(C语言实现)

数据结构初阶之堆&#xff08;C语言实现&#xff09; &#x1f30f; 堆的概念&#x1f30f; 堆的模拟实现&#x1f413; 堆的结构和方法接口&#x1f413; 堆的方法的模拟实现&#x1f64a; 堆的初始化&#x1f64a; 堆的构建&#x1f64a; 堆的插入&#x1f64a; 向上调整&…

政安晨:【深度学习实践】【使用 TensorFlow 和 Keras 为结构化数据构建和训练神经网络】(二)—— 深度神经网络

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras实战演绎 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 概述 深度神经网络&#xff08;Deep Neural Network…

探索 Flutter 中的 NavigationRail:使用详解

1. 介绍 在 Flutter 中&#xff0c;NavigationRail 是一个垂直的导航栏组件&#xff0c;用于在应用程序中提供导航功能。它通常用于更大屏幕空间的设备&#xff0c;如平板电脑和桌面应用程序。NavigationRail 提供了一种直观的方式来浏览应用程序的不同部分&#xff0c;并允许…

5.windows Ubuntu 子系统,测序数据质量检测。

我们在得到一组或几组测序数据后&#xff0c;比如从测序公司拿到的测序数据为fastq.gz格式&#xff0c;首先我们需要对它们进行MD5检验&#xff0c;确保数据没有问题后才可进入以后的程序。&#xff08;MD5可以进行测序数据完整性验证&#xff1a;MD5可以用于验证数据在传输或存…

python基础——数据容器总结、通用方法和相互转换

&#x1f4dd;前言&#xff1a; 在前段时间我们已经把python中常见的五大数据容器&#xff1a;列表、元组、字符串、集合、字典学习完了。 这篇文章主要对刚学习过的五大数据容器的特点做个总结&#xff0c;以及再介绍几个通用方法和它们之间相互转化的方法&#xff1a; 1&…

Python Qt Designer 初探

代码下载在最下面 #开发环境安装# 本示例在Windows11下, 使用VSCode开发, Python 3.12.2, Qt Designer 5.11 VSCode插件Python、Python Debugger、PYQT Integration、Pylance (准备) VSCode自行官网下载 Visual Studio Code - Code Editing. Redefined (准备) Python 直接…

体育竞赛成绩管理系统设计与实现|jsp+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW&#xff0c;文末可获取本项目的所有资料。 推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java&#xff0c;…

NLP 笔记:Latent Dirichlet Allocation (介绍篇)

1 问题介绍 假设我们有一堆新闻&#xff0c;每个新闻都有≥1个主题 我们现在只知道新闻的内容&#xff0c;我们希望一个算法&#xff0c;帮我们把这些新闻分类成主题人类可以根据每个每个文章里面的单词判断主题&#xff0c;那计算机怎么做呢&#xff1f; ——>LDA(Latent D…

如何申请香港信用卡?

第一种方法就是申请香港的虚拟卡 在线上申请&#xff0c;方便快捷&#xff0c;下卡快&#xff0c;可以绑定香港apple id&#xff0c;香港paypal等等 点击获取线上香港信用卡 第二种线下办理方法 如何申请香港个人卡 香港个人银行卡(等同于大陆的借记卡9)&#xff0c;开户限制…

K8S--SpringCloud应用整合Nacos实战

原文网址&#xff1a;K8S--SpringCloud应用整合Nacos实战-CSDN博客 简介 本文介绍K8S部署SpringCloud应用整合Nacos实战。 本文是将原来的SpringCloud项目&#xff08;闪速优选&#xff09;迁移到K8S上&#xff0c;一行代码都不需要改动。用K8S运行Nacos、Gateway、SpringCl…