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. 参考:
随机推荐
- Elastic: 创建一个 Elastic 邮件警报 - 7.7 发行版
文章转载自:https://blog.csdn.net/UbuntuTouch/article/details/106185321 总结: 1.elastic 免费版只有发送警报到一个索引或者到Ser ...
- 【前端必会】Prettier,有了ESlint,还要Prettier
介绍 已经安装了ESLint为什么还要Prettier,主要是让ESLint专注于语法相关的验证,检查潜在问题.而代码格式化则有Prettier来接管 对比参考: https://baijiahao. ...
- C#-7 结构和枚举
一 什么是结构 结构是程序员定义的数据类型,有数据成员和函数成员,和类非常类似. 类是引用类型,而结构是值类型: 结构和类一样可以实现接口: 结构是隐式密封的,不能被派生: 结构类型的变量不能为nul ...
- 关于windows-server-下MySQL Community版本的的安装与配置
在公司电脑或者服务器上安装软件,都是有要求的,要么购买license-(这个需要申请,难度较大),要么安装免费开源的软件 笔者最近想要安装mysql服务环境,用于数据存储及开发一些功能程序需要连接数据 ...
- STM32的SPI口的DMA读写[原创www.cnblogs.com/helesheng]
SPI是我最常用的接口之一,连接管脚仅为4根:在常见的芯片间通信方式中,速度远优于UART.I2C等其他接口.STM32的SPI口的同步时钟最快可到PCLK的二分之一,单个字节或字的通信时间都在us以 ...
- ClickHouse(07)ClickHouse数据库引擎解析
目录 Atomic 建表语句 特性 Table UUID RENAME TABLES DROP/DETACH TABLES EXCHANGE TABLES ReplicatedMergeTree in ...
- instanceof的使用和向下转型
x instanceof A:检验x是否为类A的对象,返回值为boolean型 使用情境:为了避免在向下转型时出现ClassCastException的异常,我们在向下转型之前,先进行instance ...
- 【多服务场景化解决方案】AR虚拟技术助力智能家装
1 .介绍 总览 本应用采用了华为图形引擎服务的AR虚拟技术,您可以在手机相机里摆放想要购置的家具家电,交互式体验让您可以轻松操控它们的3D图例,以此来确定这些家具家电是否适合摆放在您的家里. 特 ...
- Python基础阶段总结:ATM项目实战
目录 ATM逻辑描述 三层框架简介 1.第一层(src.py) 2.第二层(interface文件夹下内容) 3.第三层(db_hanlder) 启动函数 用户注册功能 用户登录 common中的小功 ...
- or、and表达式
or 逻辑表达式 result = a or b 如果a为空则执行or后面的b,如果a不为空,则执行or前面的a 即:赋值运算中,如果or前面为真,就不会去执行or后面的,如果or前面为假才会执行or ...