一、创建TCP传输的客户端

1、建立TCP客户端的Socket服务,使用的是Socket对象,建议该对象一创建就明确目的地,即要连接的主机;
2、如果连接建立成功,说明数据传输通道已建立,该通道就是Socket流,是底层建立好的,既然是流,说着这里既有输入流,又有输出流,想要输入流或者输出流对象,可以通过Socket来获取,可以通过getOutputStream()和getInputStream()来获取;
3、使用输出流,将数据写出;
4、关闭Socket服务。
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
public class Client {
public static void main(String[] args) throws IOException {
// 1、创建客户端的Socket服务
Socket socket = new Socket("192.168.1.100", 10002);
// 2、获取Socket流中输入流
OutputStream out = socket.getOutputStream();
// 3、使用输出流将指定的数据写出去
out.write("TCP is coming !".getBytes());
// 4、关闭Socket服务
socket.close();
}
}
二、创建TCP传输的服务端
1、建立TCP服务端的的Socket服务,通过ServerSocket对象;
2、服务端必须对外提供一个端口,否则客户端无法连接;
3、获取连接过来的客户端对象;
4、通过客户端对象来获取Socket流,读取客户端发来的数据;
5、关闭资源,关客户端,关服务端。
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) throws IOException {
// 1、创建客户端对象
ServerSocket ss = new ServerSocket(10002);
// 2、获取连接过来的客户端对象
Socket s = ss.accept();
String ip = s.getInetAddress().getHostAddress();
// 3、通过Socket对象获取输入流,读取客户端发来的数据
InputStream in = s.getInputStream();
byte[] buf = new byte[1024];
int len = in.read(buf);
String text = new String(buf, 0, len);
System.out.println(ip + ":" + text);
// 4、关闭资源
s.close();
ss.close();
}
}
三、优化TCP传输的客户端和服务端
在本部分,我们对前两部分的内容进行优化,实现TCP传输模式下的客户端和服务端的交互功能。
/**
*优化TCP传输的客户端
*/
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class ClientUpdate {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("192.168.1.100", 10002);
OutputStream out = socket.getOutputStream();
out.write("tcp!".getBytes());
// 读取服务端返回的数据,使用Socket读取流
InputStream in = socket.getInputStream();
byte[] buf = new byte[1024];
int len = in.read(buf);
String text = new String(buf, 0, len);
System.out.println(text);
socket.close();
}
}
/**
*优化TCP传输的服务端
*/
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class ServerUpdate {
public static void main(String[] args) throws IOException {
// 1、创建服务端对象
ServerSocket ss = new ServerSocket(10002);
// 2、获取连接过来的客户端对象
Socket s = ss.accept(); //accept方式为阻塞式方法
String ip = s.getInetAddress().getHostAddress();
// 3、通过Socket对象获取输入流,要读取客户端发来的数据
InputStream in = s.getInputStream();
byte[] buf = new byte[1024];
int len = in.read(buf);
String text = new String(buf, 0, len);
System.out.println(ip + ":" + text);
// 使用客户端的Socket对象的输出流给客户端返回数据
OutputStream out = s.getOutputStream();
out.write("收到".getBytes());
s.close();
ss.close();
}
}
四、创建英文大写转换服务器
应用TCP(Transmission Control Protocol,传输控制协议)的相关性质,创建一个基于TCP传输下的英文大写转换服务器,要求:客户端输入字母数据,发送给服务端;服务端收到数据后显示在控制台,并将该数据转成大写字母返回给客户端;直到客户端输入“over”为止,转换结束。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class TransClient {
public static void main(String[] args) throws IOException {
/**
* 思路:创建客户端
* 1、创建Socket客户端对象
* 2、获取键盘录入的数据
* 3、将录入的信息发送给Socket输出流
* 4、读取服务端的数据并返回的大写数据
*/
// 1、创建Socket客户端对象
Socket s = new Socket("192.168.1.100", 10004);
// 2、获取键盘录入
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
// 3、Socket输出流
PrintWriter out = new PrintWriter(s.getOutputStream(), true);
// 4、Socket输入流,读取服务端的数据并返回的大写数据
BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
String line = null;
while ((line = bufr.readLine()) != null) {
if ("over".equals(line))
break;
out.println(line);
// 读取服务端返回的一行大写数据
String upperStr = bufIn.readLine();
System.out.println(upperStr);
}
s.close();
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class TransServer {
public static void main(String[] args) throws IOException {
/**
* 思路:创建服务端
* 1、创建SeverSocket客户端对象
* 2、获取Socket流
* 3、通过Socket, 读取客户端发过来的需要转换的数据
* 4、显示在控制台上
* 5、将数据转换成大写返回给客户端
*/
// 1、创建SeverSocket对象
ServerSocket ss = new ServerSocket(10004);
// 2、获取Socket对象
Socket s = ss.accept();
// 获取IP地址
String ip = s.getInetAddress().getHostAddress();
System.out.println(ip + "......connected");
// 3、获取Socket读取流,并装饰
BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
// 4、获取Socket的输出流,并装饰
PrintWriter out = new PrintWriter(s.getOutputStream(), true);
String line = null;
while ((line = bufIn.readLine()) != null) {
System.out.println(line);
out.println(line.toUpperCase());
}
s.close();
ss.close();
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# java
# 中模拟TCP传输的客户端和服务端
# TCP传输的客户端和服务端
# 实现了基于TCP的Java Socket编程实例代码
# Java实现Socket的TCP传输实例
# java实现一个简单TCPSocket聊天室功能分享
# Java基于Tcp协议的socket编程实例
# 基于java TCP网络通信的实例详解
# Java基于TCP方式的二进制文件传输
# Java Socket编程实例(四)- NIO TCP实践
# Java Socket编程实例(三)- TCP服务端线程池
# Java使用TCP实现数据传输实例详解
# Java网络编程之TCP程序设计
# 客户端
# 服务端
# 可以通过
# 英文
# 的是
# 发送给
# 说着
# 又有
# 希望能
# 谢谢大家
# 提供一个
# 转换成
# 将该
# 两部分
# 创建一个
# 转成
# 台上
# 模式下
# args
# String
相关文章:
高防服务器:AI智能防御DDoS攻击与数据安全保障
教学论文网站制作软件有哪些,写论文用什么软件
?
c# 在ASP.NET Core中管理和取消后台任务
网站制作需要会哪些技术,建立一个网站要花费多少?
如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本
建站主机如何选?性能与价格怎样平衡?
Python lxml的etree和ElementTree有什么区别
电商平台网站制作流程,电商网站如何制作?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
网站制作的步骤包括,正确网址格式怎么写?
岳西云建站教程与模板下载_一站式快速建站系统操作指南
网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?
建站主机选购指南与交易推荐:核心配置解析
如何基于云服务器快速搭建网站及云盘系统?
如何零成本快速生成个人自助网站?
建站之星在线客服如何快速接入解答?
php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
如何在腾讯云服务器快速搭建个人网站?
如何用花生壳三步快速搭建专属网站?
金*站制作公司有哪些,金华教育集团官网?
如何配置FTP站点权限与安全设置?
网站制作知乎推荐,想做自己的网站用什么工具比较好?
外贸公司网站制作,外贸网站建设一般有哪些步骤?
建设网站制作价格,怎样建立自己的公司网站?
云南网站制作公司有哪些,云南最好的招聘网站是哪个?
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
无锡营销型网站制作公司,无锡网选车牌流程?
网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
如何在局域网内绑定自建网站域名?
如何用PHP工具快速搭建高效网站?
常州企业网站制作公司,全国继续教育网怎么登录?
如何在阿里云香港服务器快速搭建网站?
网站图片在线制作软件,怎么在图片上做链接?
装修招标网站设计制作流程,装修招标流程?
自助网站制作软件,个人如何自助建网站?
北京网站制作网页,网站升级改版需要多久?
如何快速打造个性化非模板自助建站?
如何通过远程VPS快速搭建个人网站?
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
如何在建站之星绑定自定义域名?
制作国外网站的软件,国外有哪些比较优质的网站推荐?
网站制作网站,深圳做网站哪家比较好?
如何优化Golang Web性能_Golang HTTP服务器性能提升方法
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
创业网站制作流程,创业网站可靠吗?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
*请认真填写需求信息,我们会在24小时内与您取得联系。