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. 参考:
随机推荐
- Docker Compose的安装及命令补全
安装Compose Compose的安装有多种方式,例如通过shell安装.通过pip安装.以及将compose作为容器安装等等.本文讲解通过shell安装的方式.其他安装方式如有兴趣,可以查看Doc ...
- MongoDB 的用户和角色权限
副本和分片集群的安全设置参考这个:高级:https://files.cnblogs.com/files/sanduzxcvbnm/mongodb_advance.pdf 默认情况下,MongoDB实例 ...
- Elasticsearch:创建 API key 接口访问 Elasticsearch
转载自:https://blog.csdn.net/UbuntuTouch/article/details/107181440 在之前我的文章 "Elastic:使用Postman来访问El ...
- C语言------程设设计入门
仅供借鉴.仅供借鉴.仅供借鉴(整理了一下大一C语言每个章节的练习题.没得题目.只有程序了) 文章目录 1:程序设计入门 2 .实训目的及要求 3.代码实验(包含运行结果) 4 .实验总结 1:程序设计 ...
- 支持JDK19虚拟线程的web框架,之一:体验
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于虚拟线程 随着JDK19 GA版本的发布,虚拟线程 ...
- Ansible 批处理实战
软件简介 Ansible 是一款自动化运维工具,基于 Python 开发,集合了众多运维工具(puppet.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功 ...
- SQL分层查询
数据中可能存在层次关系,本文章主要介绍查询这种关系的实例.会大量使用递归式 CTE. Emps 表中 EName 员工和 MGR 上级之间的关系如下: 每个上级也同样是员工,主管和员工之间为父子关系. ...
- 题解 AT2361 [AGC012A] AtCoder Group Contest
\(\sf{Solution}\) 显然要用到贪心的思想. 既然最终的结果只与每组强度第二大选手有关,那就考虑如何让他的值尽可能大. 其实,从小到大排个序就能解决,越靠后的值越大,使得每组强度第二大选 ...
- 题解 UVA439 骑士的移动 Knight Moves
前言 最近板子题刷多了-- 题意 一个 \(8\times 8\) 的棋盘,问马从起点到终点的最短步数为多少. \(\sf Solution\) 要求最短路径嘛,显然 bfs 更优. 读入 这个读入处 ...
- 一、什么是celery
一.什么是Celery 1.1.celery是什么 celery是一个简单.灵活且可靠的,处理大量消息的分布式系统,专注于是心爱处理的异步任务队列,同事也支持任务调度. Celery的架构由三部分组成 ...