socet网络编程
一、 网络模型
应用层 ----- HTTP协议
传输层 ----- TCP协议
网络层 ----- IP协议
链路层 ----- 以太网协议
二、什么是socket
socket是一种
三、Upd协议与Tcp协议的区别
四、Upd协议下的服务端与客户端的demo
1 import java.io.IOException;
2 import java.net.DatagramPacket;
3 import java.net.DatagramSocket;
4 import java.net.InetAddress;
5 //Upd服务端
6 class UpdService{
7
8 public static void main(String[] args) throws IOException {
9 System.out.println("upd协议服务端已启动...");
10 //创建端口号 默认ip地址是本机
11 DatagramSocket ds = new DatagramSocket(8080);
12 byte[] buf = new byte[1024];
13 //数据包
14 DatagramPacket dp = new DatagramPacket(buf, 0, buf.length);
15 //会发生阻塞 等待客户端发送请求
16 ds.receive(dp);
17 System.out.println("来源:" + dp.getAddress() + " 端口" + dp.getPort());
18 System.out.println("接受来自客户端的数据:" + new String(dp.getData(), 0, dp.getLength()));
19 ds.close();
20 }
21
22 }
23
24 //Upd客户端
25 public class UpdClient {
26 public static void main(String[] args) throws IOException {
27
28 System.out.println("upd协议客户端开始请求...");
29 DatagramSocket ds = new DatagramSocket();
30 String str = "好好学习, 天天向上" ;
31 byte[] buf = str.getBytes();
32 DatagramPacket dp = new DatagramPacket(buf, buf.length, InetAddress.getByName("127.0.0.1"), 8080);
33 //发送数据包
34 ds.send(dp);
35 ds.close();
36
37 }
38 }
五、Tcp协议下的服务端与客户端的demo
1 import java.io.IOException;
2 import java.io.InputStream;
3 import java.io.OutputStream;
4 import java.net.ServerSocket;
5 import java.net.Socket;
6 //tcp协议下的服务端
7 class TcpService{
8 public static void main(String[] args) throws IOException {
9 InputStream inputStream = null;
10 ServerSocket serverSocket = null;
11 try {
12 System.out.println("tcp协议下的服务器启动.....");
13 serverSocket = new ServerSocket(8080);
14 //接受客户端发送过来的数据
15 Socket accept = serverSocket.accept();
16 //获取输入流
17 inputStream = accept.getInputStream();
18 byte[] buf = new byte[1024];
19 inputStream.read(buf, 0, buf.length);
20 System.out.println("客户端请求数据:" + new String(buf, 0, buf.length));
21 //返回给客户端的信息
22 OutputStream outputStream = accept.getOutputStream();
23 outputStream.write("损粗".getBytes());
24 outputStream.close();
25 }finally {
26 inputStream.close();
27 if(!serverSocket.isClosed()) serverSocket.close();
28 }
29 }
30 }
31 //tcp协议下的客户端
32 public class TcpClient {
33 public static void main(String[] args) throws IOException {
34 Socket socket = null;
35 try {
36 System.out.println("tcp协议客户端启动...");
37 socket = new Socket("127.0.0.1", 8080);
38 OutputStream outputStream = socket.getOutputStream();
39 outputStream.write("good good study, day day up!".getBytes());
40 }finally {
41 socket.close();
42 }
43 }
44 }
socet网络编程的更多相关文章
- Socket网络编程--FTP客户端
Socket网络编程--FTP客户端(1)(Windows) 已经好久没有写过博客进行分享了.具体原因,在以后说. 这几天在了解FTP协议,准备任务是写一个FTP客户端程序.直接上干货了. 0.了解F ...
- 转:MFC网络编程学习
要学习好网路编程,主要看以下几个方面: 1.掌握概念,诸如:同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)等. 2.在实际Windows网络通信软件开发中,异步非阻 ...
- 《转》MFC网络编程学习
原地址:http://www.cnblogs.com/renyuan/archive/2013/06/04/3117006.html要学习好网路编程,主要看以下几个方面: 1.掌握概念,诸如:同步(S ...
- 猫哥网络编程系列:HTTP PEM 万能调试法
注:本文内容较长且细节较多,建议先收藏再阅读,原文将在 Github 上维护与更新. 在 HTTP 接口开发与调试过程中,我们经常遇到以下类似的问题: 为什么本地环境接口可以调用成功,但放到手机上就跑 ...
- python select网络编程详细介绍
刚看了反应堆模式的原理,特意复习了socket编程,本文主要介绍python的基本socket使用和select使用,主要用于了解socket通信过程 一.socket模块 socket - Low- ...
- Linux Socket 网络编程
Linux下的网络编程指的是socket套接字编程,入门比较简单.在学校里学过一些皮毛,平时就是自学玩,没有见识过真正的socket编程大程序,比较遗憾.总感觉每次看的时候都有收获,但是每次看完了之后 ...
- 猫哥网络编程系列:详解 BAT 面试题
从产品上线前的接口开发和调试,到上线后的 bug 定位.性能优化,网络编程知识贯穿着一个互联网产品的整个生命周期.不论你是前后端的开发岗位,还是 SQA.运维等其他技术岗位,掌握网络编程知识均是岗位的 ...
- 浅谈C#网络编程(一)
阅读目录: 基础 Socket编程 多线程并发 阻塞式同步IO 基础 在现今软件开发中,网络编程是非常重要的一部分,本文简要介绍下网络编程的概念和实践. Socket是一种网络编程接口,它是对传输层T ...
- C++11网络编程
Handy是一个简洁优雅的C++11网络库,适用于linux与Mac平台.十行代码即可完成一个完整的网络服务器. 下面是echo服务器的代码: #include <handy/handy.h&g ...
- Java - 网络编程
Java的网络编程学习,关于计算机基础的学习参考:计算机网络基础学习 - sqh. 参考:
随机推荐
- 第五章:Admin管理后台 - 2:自定义Admin actions
通常情况下,admin的工作模式是"选中目标,然后修改目标",但在同时修改大量目标的时候,这种模式就变得重复.繁琐. 为此,admin提供了自定义功能函数actions的手段,可以 ...
- 工厂数字化转型离不开 MES 的原因是什么?
工厂数字化转型是离不开 MES,首先得弄清楚什么是工厂数字化转型.什么是MES,它们的关系是怎样的. 数字化的主要含义是构建"业务数字化.数字资产化.资产服务化.服务业务化"闭环, ...
- .NET MAUI 社区工具包 1.3版本发布
2022 年 10 月 4 日,微软发布了 .NET MAUI 社区工具包的 1.3 版,具体参见微软官方博客:https://devblogs.microsoft.com/dotnet/announ ...
- Java学习之路:Dos命令
2022-10-08 10:25:42 (一)打开CMD的方式 开始+系统+命令提示符 Win+R 输入cmd打开控制台 在任意的文件夹下面,按住Shift+鼠标右键,点击在此打开命令行窗口 资源 ...
- python基础作业1
目录 附加练习题(提示:一步步拆解) 1.想办法打印出jason 2.想办法打印出大宝贝 3.想办法打印出run 4.获取用户输入并打印成下列格式 5 根据用户输入内容打印其权限 6 编写用户登录程序 ...
- 齐博x2自建流媒体RTMP直播服务器
这里只讲解大家最容易配置的Windows版,测试环境是2008版服务器及WIN7下载下面的软件,解压在任何目录都可,然后双击"启动.bat"即可http://down.php168 ...
- 1.-Django项目结构
一.Django简介 Django是一个开放源代码的Web应用框架,由Python写成.采用了MTV的框架模式,即模型M,视图V和模版T. Django基本组件: 1.基本配置文件/路由系统 2. ...
- 乾象投资:基于JuiceFS 构建云上量化投研平台
背景 乾象投资 Metabit Trading 成立于2018年,是一家以人工智能为核心的科技型量化投资公司.核心成员毕业于 Stanford.CMU.清北等高校.目前,管理规模已突破 30 亿元人民 ...
- 基于FPGA的SATA3.0主机控制器IP
SATA3.0 Host Controller IP SATA3.0 Host IP不仅实现了SATA协议的PHY(物理层).Link(链路层)和TRN(传输层),并且实现了CMD(命令层)和APP( ...
- appium 移动端自动化测试工具
appium 移动端自动化测试工具 appium 移动端自动化测试工具 appium 是哟个自动化测试开源工具 支持ios和安卓平台的应用 以及web应用和混合应用 appium 是一个跨平台的工具: ...