UDP socket也可以使用connect系统调用
对于UDP来说:
socket()函数建立一个插口;
bind()函数指明了本地地址/端口(包括ADDR_ANY, 通配所有本地网络接口);
connect()可以用来指明目的地址/端口;
一般来说,UDP客户端在建立了插口后会直接用sendto()函数发送数据,需要在sendto()函数的参数里指明目的地址/端口。如果一个UDP客户端在建立了插口后首先用connect()函数指明了目的地址/端口,然后也可以用send函数发送数据,因为此时send函数已经知道对方地址/端口,用getsockname()也可以得到这个信息。
UDP客户端在建立了插口后会直接用sendto()函数发送数据,还隐含了一个操作,那就是在发送数据之前,UDP会首先为该插口选择一个独立的UDP端口(在1024—5000之间),将该插口置为已绑定状态。如果一个UDP客户端建立插口后首先用bind()函数指明了本地地址/端口,也是可以的,这样可以强迫UDP使用指定的端口发送数据。(事实上,UDP无所谓服务器和客户端,这里的界限已经模糊了。)
UDP服务器也可以使用connect(),如上面所述,connect()可以用来指明目的地址/端口;这将导致服务器只接受特定一个主机的请求。
方法一:
socket()——>sendto()或recvfrom()
方法二:
socket()——>connect()——>send或recv()
UDP socket也可以使用connect系统调用的更多相关文章
- 以C语言为例完成简单的网络聊天程序以及关于socket在Linux下系统调用的分析
套接字是网络编程中的一种通信机制,是支持TCP/IP的网络通信的基本操作单元,可以看做是不同主机之间的进程进行双向通信的端点,简单的说就是通信的两方的一种约定,用套接字中的相关函数来完成通信过程. 端 ...
- UDP编程中的connect
标准的udp客户端开了套接口后,一般使用sendto和recvfrom函数来发数据,最近看到ntpclient的代码里面是使用send函数直接法的,就分析了一下,原来udp发送数据有两种方法供大家选用 ...
- UDP socket 设置为的非阻塞模式
UDP socket 设置为的非阻塞模式 Len = recvfrom(SocketFD, szRecvBuf, sizeof(szRecvBuf), MSG_DONTWAIT, (struct so ...
- How To: Perl TCP / UDP Socket Programming using IO::Socket::INET
http://www.thegeekstuff.com/2010/07/perl-tcp-udp-socket-programming/ In this article, let us discuss ...
- Python Udp Socket
socket(套接字),传输层通信的端点,由IP和端口号组成(IP,Port),可以通过socket精确地找到服务器上的进程并与之通信 python2.6实现,基于AF_INET(网络套接字) 类型S ...
- Linux编程之UDP SOCKET全攻略
这篇文章将对linux下udp socket编程重要知识点进行总结,无论是开发人员应知应会的,还是说udp socket的一些偏僻知识点,本文都会讲到.尽可能做到,读了一篇文章之后,大家对udp so ...
- TCP&UDP&Socket讲解(上)
这两天我将整理TCP&UDP&Socket,大约花大家10-15分钟之间,希望本篇文章让大家对TCP使用的理解提高一个层次. 建议大家拿出纸和笔,画一下!!! 一.TCP 1. TCP ...
- 【转】Linux编程之UDP SOCKET全攻略
转自:http://www.cnblogs.com/skyfsm/p/6287787.html?utm_source=itdadao&utm_medium=referral 这篇文章将对lin ...
- connect系统调用
/* * Attempt to connect to a socket with the server address. The address * is in user space so we ve ...
随机推荐
- centos7 更改时区
Linux 系统(我特指发行版, 没说内核) 下大部分软件的风格就是不会仔细去考虑向后 的兼容性, 比如你上个版本能用这种程序配置, 没准到了下一个版本, 该程序已经不见了. 比如 sysvinit ...
- 行转列之后的datagrid的保存
行专列之后,查询的存储过程为 1 USE [APS_Future_FT] 2 GO 3 /****** Object: StoredProcedure [dbo].[P_APS_H_InternalS ...
- 【BZOJ 3294】 3294: [Cqoi2011]放棋子 (DP+组合数学+容斥原理)
3294: [Cqoi2011]放棋子 Description Input 输入第一行为两个整数n, m, c,即行数.列数和棋子的颜色数.第二行包含c个正整数,即每个颜色的棋子数.所有颜色的棋子总数 ...
- BZOJ1017 魔兽地图DotR (树上背包)
一道背包的神题,用到了树上dp和背包dp,这个题的特殊性在于儿子对于父亲节点是有影响的,所以用f[i][j][k]表示第i号装备,其中用j个来合成上层装备,花费k元所能获得最大的力量值. 然后对于每一 ...
- 「清华集训2015」V
「清华集训2015」V 题目大意: 你有一个序列,你需要支持区间加一个数并对 \(0\) 取 \(\max\),区间赋值,查询单点的值以及单点历史最大值. 解题思路: 观察发现,每一种修改操作都可以用 ...
- 欧拉路小结 JZYZOJ1210 骑马修栅栏
现在写到欧拉路,理解起来并不算特别困难...吧... 但是非常恶心的是每次都要调试半天,做不到一遍两遍就能ac 每次写程序都对于程序的整体构架没有清晰的思路,想到哪里写到哪里真的是个非常差的习惯[尽管 ...
- 数据离散化 ( 以及 stl 中的 unique( ) 的用法 )+ bzoj3289:Mato的文件管理
http://blog.csdn.net/gokou_ruri/article/details/7723378 ↑惯例Mark大神的博客 bzoj3289:Mato的文件管理 线段树求逆序对+莫队 ...
- bzoj 1045
确定初始状态(n与1直接谁给了谁几个),后面的就确定了,再根据总结出来的东西决定前面谁给谁几个最优. n=1000000!!! /*********************************** ...
- 第一章 -- Java性能调优概述
写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------主要内容包括: 1.概述 2 ...
- Codeforces Beta Round #9 (Div. 2 Only) B. Running Student 水题
B. Running Student 题目连接: http://www.codeforces.com/contest/9/problem/B Description And again a misfo ...