TCP通信的客户端代码实现

两端通信时步骤:
1.服务端程序,需要事先启动,等待客户端的连接。
⒉.客户端主动连接服务器端,连接成功才能通信。服务端不可以主动连接客户端。在Java中,提供了两个类用于实现TCP通信程序:
1.客户端︰`java.net.Socket类表示。创建 Socket对象,向服务端发出连接请求,服务端响应请求,两者建立连接开始通信。
⒉.服务端︰java.netLServerSocket类表示。创建 ServerSocket对象,相当于开启一个服务,并等待客户端的连接。

TCP通信的客户端:向服务器发送连接请求,给服务器发送数据,读取服务器回写的数据表示客户端的类:
java.net.Socket:此类实现客户端套接字(也可以就叫"套接字”)。套接字是两台机器间通信的端点。套接字:包含了IP地址和端口号的网络单位
构造方法:
Socket(String host, int port)创建一个流套接字并将其连接到指定主机上的指定端口号。参数:
String host:服务器主机的名称/服务器的IP地址int port:服务器的端口号
成员方法:
outputStream getoutputstream())返回此套接字的输出流。InputStream getInputstream()返回此套接字的输入流。void close()关闭此套接字。

package A_Lian_one.Demo21;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket; public class TCPClient {
public static void main(String[] args) throws IOException {
//1.创建一个客户端对象Socket,构造方法绑定服务器的IP地址和端口号
Socket socket = new Socket("127.0.0.1",8888);
//2.使用Socket对象中的方法getOutputStream()获取网络字节输出流OutputStream对象
OutputStream os = socket.getOutputStream();
//3.使用网络字节输出流OutputStream对象中的方法write,给服务器发送数据
os.write("你好服务器".getBytes()); //4.使用Socket对象中的方法getInputStream()获取网络字节输入流InputStream对象
InputStream is = socket.getInputStream(); //5.使用网络字节输入流InputStream对象中的方法read,读取服务器回写的数据
byte[] bytes = new byte[1024];
int len = is.read(bytes);
System.out.println(new String(bytes,0,len)); //6.释放资源(Socket)
socket.close(); } }

TCP通信的服务器端代码实现

服务器的实现步骤:
1.创建服务器serversocket对象和系统要指定的端口号
2.使用ServerSocket对象中的方法accept,获取到请求的客户端对象Socket
3.使用socket对象中的方法getInputStream()获取网络字节输入流Inputstream对象4.使用网络字节输入流Inputstream对象中的方法read,读取客户端发送的数据
5.使用socket对象中的方法getoutputstream ()获取网络字节输出流outputstream对象6.使用网络字节输出流outputstream对象中的方法write,给客户端回写数据
7.释放资源(Socket, Serversocket)

package A_Lian_one.Demo21;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket; public class TCPServer {
public static void main(String[] args) throws IOException {
//1.创建服务器ServerSocket对象和系统要指定的端口号
ServerSocket server = new ServerSocket(8888);
//2.使用ServerSocket对象中的方法accept,获取到请求的客户端对象Socket
Socket socket = server.accept();
//3.使用Socket对象中的方法getInputStream()获取网络字节输入流InputStream对象
InputStream is = socket.getInputStream();
//4.使用网络字节输入流InputStream对象中的方法read,读取客户端发送的数据
byte[] bytes = new byte[1024];
int len = is.read(bytes);
System.out.println(new String(bytes,0,len));
//5.使用Socket对象中的方法getOutputStream()获取网络字节输出流OutputStream对象
OutputStream os = socket.getOutputStream();
//6.使用网络字节输出流OutputStream对象中的方法write,给客户端回写数据
os.write("收到谢谢".getBytes());
//7.释放资源(Socket,ServerSocket)
socket.close();
server.close();
}
}

TCP通信的客户端代码实现-TCP通信的服务器端代码实现的更多相关文章

  1. 二、网络编程-socket之TCP协议开发客户端和服务端通信

    知识点:之前讲的udp协议传输数据是不安全的,不可靠不稳定的,tcp协议传输数据安全可靠,因为它们的通讯机制是不一样的.udp是用户数据报传输,也就是直接丢一个数据包给另外一个程序,就好比寄信给别人, ...

  2. c++ 网络编程(一)TCP/UDP windows/linux 下入门级socket通信 客户端与服务端交互代码

    原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/9601511.html c++ 网络编程(一)TCP/UDP  入门级客户端与服务端交互代码 网 ...

  3. TCP通信的客户端代码实现和TCP通信的服务器代码实现

    TCP通信的客户端代码实现 package com.yang.Test.ServerStudy; import java.io.*; import java.net.Socket; /** * TCP ...

  4. 客户端程序通过TCP通信传送"小文件"到服务器

    客户端程序通过TCP通信传送"小文件"到服务器 [c#源码分享]客户端程序通过TCP通信传送"小文件"到服务器 源码  (不包含通信框架源码,通信框架源码请另行 ...

  5. 网络编程之Socket的TCP协议实现客户端与客户端之间的通信

    我认为当你学完某个知识点后,最好是做一个实实在在的小案例.这样才能更好对知识的运用与掌握 如果你看了我前两篇关于socket通信原理的入门文章.我相信对于做出我这个小案列是完全没有问题的!! 既然是小 ...

  6. 【转】 C++ 简单的 Tcp 实现[socket] 客户端与客户端通信

    //  服务器端代码 // Server.cpp : Defines the entry point for the console application.// #include "std ...

  7. 基于tcp/udp协议的套接字通信

    目录 一.套接字分类 二.套接字的工作流程 三.基于tcp协议的套接字 四.基于udp协议的套接字 一.套接字分类 1.基于文件类型的套接字家族:AF_UNIX 2.基于网络类型的套接字家族:AF_I ...

  8. 与众不同 windows phone (30) - Communication(通信)之基于 Socket TCP 开发一个多人聊天室

    原文:与众不同 windows phone (30) - Communication(通信)之基于 Socket TCP 开发一个多人聊天室 [索引页][源码下载] 与众不同 windows phon ...

  9. 网络编程、三要素、Socket通信、UDP传输、TCP协议、服务端(二十五)

    1.网络编程概述 * A:计算机网络 * 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传 ...

随机推荐

  1. 线上kafka消息堆积,consumer掉线,怎么办?

    线上kafka消息堆积,所有consumer全部掉线,到底怎么回事? 最近处理了一次线上故障,具体故障表现就是kafka某个topic消息堆积,这个topic的相关consumer全部掉线. 整体排查 ...

  2. @confirguration(proxyBeanMethods = false)的作用,如何选择Full模式和Lite模式

    @Configuration(proxyBeanMethods = false) //告诉SpringBoot这是一个配置类 == 配置文件 public class MyConfig { @Bean ...

  3. DevOps|乱谈开源社区、开源项目与企业内部开源

    之前的一篇文章<从特拉斯辞职风波到研发效能中的荒唐事>中关于企业内源的内容在研发效能群内引起了大家的热烈讨论.有的小伙伴不同意,有的小伙伴非常不同意,我觉得这都是非常正常的反馈,话不说不透 ...

  4. IO学习笔记

    IO File 概述 构造方法 代码实现: public class FileDemo001 { public static void main(String[] args) { File f1 = ...

  5. Java判断质数/素数的三种方法

    介绍 质数:在大于1的整数中,如果只包含1和本身这两个约数,就被称为质数(素数) 解法 解法一:暴力枚举 枚举从2 ~ N的每一个数 实际上不用枚举到N,只需要枚举到√N就行 注意: 不要使用sqrt ...

  6. Kubernetes IPVS和IPTABLES

    个人名片: 对人间的热爱与歌颂,可抵岁月冗长 Github‍:念舒_C.ying CSDN主页️:念舒_C.ying 个人博客 :念舒_C.ying Kubernetes IPVS和IPTABLES ...

  7. ubuntu undefined reference to

    温馨提示,请使用ctrl+F进行快速查找 libdl.so undefined reference to `dlsym' undefined reference to `dlopen' undefin ...

  8. C温故补缺(三):存储类声明符(auto,register,extern,static)

    auto,register,extern,static 四个存储类声明符,用于定义变量/函数的作用域和声明周期 ① auto:自动变量,即普通变量,在平时定义变量时会自动赋予其auto类型 被auto ...

  9. x=x+=x-=x-x;

    int x=10; x=x+=x-=x-x; // x=x+(x-(x-x)) System.out.println(x); 输出结果20

  10. 4.2:Scrapy爬虫

    使用Scrapy框架对网站的内容进行爬取 在桌面处打开终端,并在终端中输入: scrapy startproject bitNews cd bitNews/bitNews 修改items文件的内容,输 ...