udp

Java 网络编程

心不动则不痛 提交于 2020-01-24 16:24:13
网络编程 网络模型 OSI参考模型 //应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 TCP/IP参考模型 //应用层 传输层 网际层 网络接口层 网络通讯要素 IP地址 //网络中设备的标识 本地回环地址 127.0.0.1 主机名 localhost 端口号 //标识进程的逻辑地址 有效端口 0~65535 其中0~1024系统使用或保留端口 传输协议 //通讯的规则 TCP UDP UDP 将数据及源和目的 封装成数据包中 不需要建立连接 每个数据包的大小限制在64K内 因无连接 是不可靠协议 不需要建立连接 速度快 TCP 建立连接 形成传输数据的通道 在连接中进行大数据量传输 通过三次握手完成连接 是可靠协议 必须建立连接 效率会稍低 InetAddress //IP地址 getLocalHost //获取本地地址IP对象 getHostAddress //IP地址字符串 getHostName //IP主机名 public class IPDemo { public static void main(String[] args) throws UnknownHostException { //获取本地主机ip地址对象。 InetAddress ip = InetAddress.getLocalHost(); //获取其他主机的ip地址对象。 ip =

UDP broadcasting for LAN computer discovery & server setup

戏子无情 提交于 2020-01-24 03:00:08
问题 I'm working on a small, networked game prototype which will be played on LANs using UDP. For the discovery of other computers on the network, I've been investigating broadcasting. However, I'm still unsure about a few details regarding UDP socket setup/usage (networking newbie). I found a good library to use after the game is started, but at first, all computers running the game must be discovered and one has to be chosen as a server. So my questions are the following: Can a single UDP socket

UDP 实现跨平台文件传输

不打扰是莪最后的温柔 提交于 2020-01-24 00:28:00
UDP 实现跨平台文件传输 实验目的 利用 TCP 完成 linux 和 windows 平台的文件传输。 实验原理 windows 与 linux 上实现 tcp 文件传输本质上是相同的,只有一些函数调用方式不一样, 这里我们仍使用上个实验的服务器端,重点学习 windows 下套接字编写。 实验步骤 1.服务器 #include < stdio . h > #include < stdlib . h > #include < string . h > #include < sys / types . h > #include < sys / socket . h > #include < arpa / inet . h > #include < unistd . h > #define PORT 11111 // 设置端口号 #define LISTENQ 10 // 设置监听队列长度 #define BUFFSIZE 1024 // 设置缓冲区大小 #define FILE_BUFFSIZE 100 // 设置文件缓冲区大小 #define END_FLAG "end" // 结束标记 int passiveTCP ( ) { //封装 tcp 的建立 // 创建套接字,使用流数据格式 int serv_fd = socket ( AF_INET , SOCK_STREAM

计算机网络

走远了吗. 提交于 2020-01-23 16:22:23
计算机网络太难?了解这一篇就够了 【原文链接https://juejin.im/post/5d896cccf265da03bd055c87】 1、谈下你对五层网络协议体系结构的理解? 学习计算机网络时我们一般采用折中的办法,也就是中和 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构,这样既简洁又能将概念阐述清楚。 1. 应用层   应用层的任务是通过 应用进程 间的交互来完成特定网络应用。应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。 对于不同的网络应用需要不同的应用层协议 。、应用层交互的数据单元称为报文。 2. 运输层   运输层的主要任务就是负责向 两台主机进程 之间的通信提供通用的数据传输服务。应用进程利用该服务传送应用层报文。“通用的”是指并不针对某一个特定的网络应用,而是多种应用可以使用同一个运输层服务。    由于一台主机可同时运行多个线程,因此运输层有 复用 和 分用 的功能。所谓复用就是指多个应用层进程可同时使用下面运输层的服务,分用和复用相反,是运输层把收到的信息分别交付上面应用层中的相应进程。   运输层还要对收到的报文进行 差错检测 。在网络层,IP数据包首部中的检验和字段只检验首部是否出现差错而不检验数据部分。   运输层向高层屏蔽了下面网络核心的细节

简单理解Socket

女生的网名这么多〃 提交于 2020-01-23 13:22:58
感谢:http://www.cnblogs.com/dolphinX/p/3460545.html 转自百度经验:http://jingyan.baidu.com/article/08b6a591e07ecc14a80922f1.html 网络由下往上分为   物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。   通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层,   三者从本质上来说没有可比性,   socket则是对TCP/IP协议的封装和应用(程序员层面上)。   也可以说,TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,   而HTTP是应用层协议,主要解决如何包装数据。   关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍:   “我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容。   如果想要使传输的数据有意义,则必须使用到应用层协议。   应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自己定义应用层协议。   WEB使用HTTP协议作应用层协议,以封装HTTP文本信息,然后使用TCP/IP做传输层协议将它发到网络上。”   而我们平时说的最多的socket是什么呢,实际上socket是对TCP/IP协议的封装

UDP - Read data from the queue in chunks

我与影子孤独终老i 提交于 2020-01-23 13:16:29
问题 I'm implementing a small application using UDP (in C). A server sends to a client the data from a given file in chunks of given amount (ex. 100 bytes / call). The client downloads the file and saves it somewhere. The catch is that the client can receive a parameter saying how many bytes to read / call. My problem is when the server sends 100 bytes / call, and the client is set to read only 15 bytes / call. The other 85 bytes are lost, because the message is removed from the UDP queue. Is

网络编程——TCP和UDP编程模型(TCP/UDP服务器和客户端-实现代码)

天大地大妈咪最大 提交于 2020-01-23 00:37:14
网络编程及其编程环境 : 通信连接: 局域网拓扑图: 广域网拓扑图: 编程环境:vim,linux,..... TCP和UDP编程模型 1,传输层TCP和UDP 1)OSI七层模型 2)TCP协议 :传输控制协议,向用户进程提供可靠的全双工字节流 3)UDP协议:用户数据报协议,是一种无连接的协议,不可靠传输 2,TCP编程模型 1)客户端 2)服务器 例子1:socket()实现进程间通信,AF_UNIX (1)服务器端;server.c #include<stdlib.h> #include<stdio.h> #include<unistd.h> #include<sys/types.h> #include<sys/socket.h> #include<sys/un.h> int main() { int serverfd,clientfd; struct sockaddr_un server,client; int client_len=sizeof(client); //initial server.sun_family = AF_UNIX; strcpy(server.sun_path,"mysocketunix"); //socket serverfd=socket(AF_UNIX,SOCK_STREAM,0); if(serverfd ==-1) { printf(

Create UDP socket with .Net Core

三世轮回 提交于 2020-01-22 20:04:07
问题 How can I create a UDP Socket which receives data in local endpoint (I do not know the remote port where the data come from) in a non-blocking way? I use .Net Core in Linux and I thought I could use ReceiveAsync() but it seems to not work this way. Any suggestions could be useful. 回答1: I solved this, this way: static void Main() { Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); IPEndPoint localEP = new IPEndPoint(IPAddress.Any, 0); socket.Bind

【网络udp高级day03】Linux命令(ping, ifconfig)+查看或配置网卡信息:ifconfig+测试远程主机连通性:ping

♀尐吖头ヾ 提交于 2020-01-22 18:49:22
文章目录 Linux命令(ping, ifconfig) 查看或配置网卡信息:ifconfig 测试远程主机连通性:ping Linux命令(ping, ifconfig) 查看或配置网卡信息:ifconfig 如果,我们只是敲:ifconfig,它会显示所有网卡的信息: 测试远程主机连通性:ping 通常用ping来检测网络是否正常 来源: CSDN 作者: 汪雯琦 链接: https://blog.csdn.net/qq_35456045/article/details/104070743

Socket——NAT穿透解决方案:UDP打洞

守給你的承諾、 提交于 2020-01-22 16:03:25
目标 路由穿透,实现广域网P2P通讯。 4种典型NAT类型 按照NAT设备在进行地址映射时行为的不同,NAT可以分为以下四种: Full Cone Restricted Cone Port Restricted Cone Symmentric 目前主要的NAT类型有如下几种: 1)Full-cone NAT, also known as one-to-one NAT 一旦一个内网地址 (iAddr:iPort) 被映射到一个外部地址 (eAddr:ePort), 来自 iAddr:iPort 的任何数据包将通过 eAddr:ePort 发送. 任何外部主机能够通过eAddr:ePort这个地址发送数据包到iAddr:iPort. 2)Address-restricted-cone NAT 一旦一个内网地址 (iAddr:iPort) 被映射到一个外部地址 (eAddr:ePort), 来自 iAddr:iPort 的任何数据包将通过 eAddr:ePort 发送. 仅只有接收到主机(iAddr:iPort)通过eAddr:ePort发送的数据包的外部主机通过该主机的任何端口发送到eAddr:ePort的数据包才能够被正确的转发到iAddr:iPort.也就是说主机有关端口无关. 3)Port-restricted cone NAT 类似于address restricted