精华内容
参与话题
问答
  • Java 组播组中发送和接受数据实例 3个目标文件。 Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称...
  • 组播在双网卡或者多网卡下,系统会根据路由表自动选择网卡发送命令,但是会导致一些网卡发送数据异常,这时候就需要绑定ip来解决这个问题了。 组播报文在网络传播的时候是需要设置TTL的(除非网口都是2层交换机),...
  • 测试结果:X86接收组播正常,X64接收报文不正常 代码如下: 1. 初始化组播socket: int ret; udpsockfd[Task[TaskId]->TaskUdpNo].sockfd = ::socket(AF_INET,SOCK_DGRAM,0); //创建socket if...
  • 最近在写一个组播通信的功能,结果发现接受同一台电脑上只能运行一个接收端,如果运行两个时,第二个运行的程序不能收到数据。查找原因是因为没有设置端口数据复用的功能(setsockpot),setsockpot的调用见代码。 ...

    最近在写一个组播通信的功能,结果发现接受同一台电脑上只能运行一个接收端,如果运行两个时,第二个运行的程序不能收到数据。查找原因是因为没有设置端口数据复用的功能(setsockpot),setsockpot的调用见代码。

    //发送端
    // Send.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
    //
    #include<WinSock2.h>
    #include <iostream>
    #include <Ws2tcpip.h>
    #pragma comment(lib,"ws2_32.lib")
    
    using namespace std;
    
    int main()
    {
    	WSADATA wsaData = { 0 };
    	WSAStartup(MAKEWORD(2, 2), &wsaData);
    
    	SOCKET sock = socket(AF_INET, SOCK_DGRAM, 0);
    
    	SOCKADDR_IN sa;
    	sa.sin_family = AF_INET;
    	sa.sin_addr.S_un.S_addr = inet_addr("239.255.88.8");
    	sa.sin_port = htons(6868);
    
    	int count = 0;
    	char serr[1024] = { 0 };
    	int a = 0;
    	while (1)
    	{
    		sprintf_s(serr, "Setsock falied !   %d", count);
    		a = sendto(sock, serr, sizeof(serr), 0, (sockaddr*)&sa, sizeof(sa));
    		if (a > 0)
    		{
    			count++;
    			//cout << "send hello lvzai sucessful   " << count << endl;
    			cout << serr << endl;
    		}
    
    		Sleep(20);
    	}
    	return 0;
    }

    //接收端

    // Recv.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
    //
    #include<WinSock2.h>
    #include <iostream>
    #include <Ws2tcpip.h>
    #pragma comment(lib,"ws2_32.lib")
    
    using namespace std;
    
    int main()
    {
    	WSADATA wsaData = { 0 };
    	WSAStartup(MAKEWORD(2, 2), &wsaData);
    
    	SOCKET sock = socket(AF_INET, SOCK_DGRAM, 0);
    
    	SOCKADDR_IN addr_rec;
    	addr_rec.sin_family = AF_INET;
    	addr_rec.sin_addr.S_un.S_addr = htonl(INADDR_ANY);  
    	addr_rec.sin_port = htons(6868);
    
    	bool bOptval = true;
    	int iret = 0;
    
    	iret = setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (char*)&bOptval, sizeof(bOptval));
    	if (iret != 0)
    		cout << "setsockopt fail: " << WSAGetLastError() << endl;
    
    	iret = bind(sock, (SOCKADDR*)&addr_rec, sizeof(addr_rec));
    	if (iret != 0)
    	{
    		char serr[1024] = { 0 };
    		sprintf_s(serr, "kbind falied !   %d", WSAGetLastError());
    		cout << "bind fail" << endl;
    		return -1;
    	}
    
    	struct ip_mreq mreq;
    
    	mreq.imr_interface.s_addr = htonl(INADDR_ANY);; //inet_addr("169.254.4.119");
    	mreq.imr_multiaddr.s_addr = inet_addr("239.255.88.8");
    
    	if (setsockopt(sock,IPPROTO_IP, IP_ADD_MEMBERSHIP, (const char*)&mreq, sizeof(mreq)) !=0)
    	{
    		char serr[1024] = { 0 };
    		sprintf_s(serr, "Setsock falied !   %d", WSAGetLastError());
    		cout << "加入组播失败!" <<serr << endl;
    	}
    
    	int len = sizeof(SOCKADDR);
    	int res = 0;
    	char strRecv[1024] = { 0 };
    	int coutt = 0;
    	while (1)
    	{
    		res = recvfrom(sock, strRecv, sizeof(strRecv), 0, (SOCKADDR*)&addr_rec, &len);
    		if (res > 0)
    		{
    			coutt++;
    			cout << "recv Data :  " << strRecv << "   coutt:  " << coutt << endl;
    		}
    	}
    	return 0;
    }

    其中最关键的是setsockopt函数的使用。

    展开全文
  • JAVA上百实例源码以及开源项目

    千次下载 热门讨论 2016-01-03 17:37:40
    Java 组播组中发送和接受数据实例 3个目标文件。 Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非...
  • 文章目录广播广播发送setsockopt广播发送示例广播接收代码示例头文件sender.creceiver.c组播网络地址组播发送组播接收加入多播组组播收发 — 示例头文件sender.crecviver.c 广播 前面介绍的数据包发送方式只有一个...

    广播

    • 前面介绍的数据包发送方式只有一个接受方,称为单播
    • 如果同时发给局域网中的所有主机,称为广播
    • 只有用户数据报(使用UDP协议)套接字才能广播
    • 广播地址
      以192.168.1.0 (255.255.255.0) 网段为例,最大的主机地址192.168.1.255代表该网段的广播地址
      发到该地址的数据包被所有的主机接收
      255.255.255.255在所有网段中都代表广播地址

    广播发送

    • 创建用户数据报套接字

    • 缺省创建的套接字不允许广播数据包,需要设置属性
      setsockopt可以设置套接字属性

    • 接收方地址指定为广播地址

    • 指定端口信息

    • 发送数据包

    setsockopt

    int  setsockopt(int  s,  int level,  int  optname, const void *optval, socklen_t  optlen);
    
    • 头文件:<sys/socket.h>
    • level : 选项级别(例如SOL_SOCKET)
    • optname : 选项名(例如SO_BROADCAST)
    • optval : 存放选项值的缓冲区的地址
    • optlen : 缓冲区长度
    • 返回值:成功返回0 失败返回-1并设置errno

    广播发送示例

    sockfd = socket(,,);
    ……
    int on = 1;
    setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, &on, sizeof(on));
    ……
    sendto(;;;;;);
    

    广播接收

    • 创建用户数据报套接字

    • 绑定本机IP地址和端口

    • 绑定的端口必须和发送方指定的端口相同

    • 等待接收数据

    代码示例

    头文件

    #ifndef __MAKEU_NET_H__
    #define __MAKEU_NET_H__
    
    #include <stdio.h>
    #include <string.h>
    #include <unistd.h>
    #include <errno.h>
    #include <stdlib.h>
    #include <strings.h>
    #include <sys/types.h>			/* See NOTES */
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <netinet/ip.h>			/* superset of previous */
    
    #define SERV_PORT 5003
    #define SERV_IP_ADDR "192.168.2.246"
    
    #define QUIT_STR "quit"
    
    #endif
    

    sender.c

    /*udp demo */
    
    /* usage:
     * ./client serv_ip serv_port 
    */
    #include "net.h"
    void usage (char *s)
    {
    	printf ("\nThis is udp demo!\n");
    	printf ("\nUsage:\n\t %s serv_ip serv_port", s);
    	printf ("\n\t serv_ip: udp server ip address");
    	printf ("\n\t serv_port: udp server port(serv_port > 5000)\n\n");
    }
    
    int main (int argc, char *argv[])
    {
    	int fd = -1;
    	int port = SERV_PORT;
    
    	port = atoi (argv[2]);
    	if (port < 0 || (port > 0 && port <= 5000)) {
    		usage (argv[0]);
    		exit (1);
    	}
    	struct sockaddr_in sin;
    	if (argc != 3) {
    		usage (argv[0]);
    		exit (1);
    	}
    
    	/* 1. 创建socket fd */
    	if ((fd = socket (AF_INET, SOCK_DGRAM, 0)) < 0) {	//UDP编程
    		perror ("socket");
    		exit (1);
    	}
    
    	/* 允许广播设置 */
    	int b_br = 1;
    	setsockopt(fd, SOL_SOCKET, SO_BROADCAST, &b_br, sizeof(int));
    
    	/*2.1 填充struct sockaddr_in结构体变量 */
    	bzero (&sin, sizeof (sin));
    
    	sin.sin_family = AF_INET;
    	sin.sin_port = htons (SERV_PORT);	//网络字节序的端口号
    #if 0
    	sin.sin_addr.s_addr = inet_addr (argv[1]);
    #else
    	if (inet_pton (AF_INET, argv[1], (void *) &sin.sin_addr) != 1) {
    		perror ("inet_pton");
    		exit (1);
    	}
    #endif
    	printf ("broadcast demo started!\n");
    	char buf[BUFSIZ];
    	while (1) {
    		fprintf (stderr, "pls input string:");
    		bzero (buf, BUFSIZ);
    		if (fgets (buf, BUFSIZ - 1, stdin) == NULL) {
    			perror ("fgets");
    			continue;
    		}
    
    		sendto (fd, buf, strlen (buf), 0, (struct sockaddr *) &sin, sizeof (sin));
    
    		if (!strncasecmp (buf, QUIT_STR, strlen (QUIT_STR))) {	//用户输入了quit字符
    			printf ("Client is exited!\n");
    			break;
    		}
    
    	}
    	close (fd);
    	return 0;
    }
    

    receiver.c

    #include "net.h"
    
    int main (void)
    {
    
    	int fd = -1;
    	struct sockaddr_in sin;
    
    	/* 1. 创建socket fd */
    	if ((fd = socket (AF_INET, SOCK_DGRAM, 0)) < 0) {	//udp程序
    		perror ("socket");
    		exit (1);
    	}
    
    	/* 2. 允许绑定地址快速重用 */
    	int b_reuse = 1;
    	setsockopt (fd, SOL_SOCKET, SO_REUSEADDR, &b_reuse, sizeof (int));
    
    	/*2. 绑定 */
    	/*2.1 填充struct sockaddr_in结构体变量 */
    	bzero (&sin, sizeof (sin));
    	sin.sin_family = AF_INET;
    	sin.sin_port = htons (SERV_PORT);	//网络字节序的端口号
    
    	/* 让服务器程序能绑定在任意的IP上 */
    #if 1
    	sin.sin_addr.s_addr = htonl (INADDR_ANY);
    #else
    	if (inet_pton (AF_INET, SERV_IP_ADDR, (void *) &sin.sin_addr) != 1) {
    		perror ("inet_pton");
    		exit (1);
    	}
    #endif
    	/*2.2 绑定 */
    	if (bind (fd, (struct sockaddr *) &sin, sizeof (sin)) < 0) {
    		perror ("bind");
    		exit (1);
    	}
    
    	char buf[BUFSIZ];
    	struct sockaddr_in cin;
    	socklen_t addrlen = sizeof (cin);
    	printf ("\nBoardcast receiver started!\n");
    	while (1) {
    		bzero (buf, BUFSIZ);
    		if (recvfrom (fd, buf, BUFSIZ - 1, 0, (struct sockaddr *) &cin, &addrlen) < 0) {
    			perror ("recvfrom");
    			continue;
    		}
    
    		char ipv4_addr[16];
    		if (!inet_ntop (AF_INET, (void *) &cin.sin_addr, ipv4_addr, sizeof (cin))) {
    			perror ("inet_ntop");
    			exit (1);
    		}
    
    		printf ("Recived boardcast data:%s\n",  buf);
    
    		if (!strncasecmp (buf, QUIT_STR, strlen (QUIT_STR))) {	//用户输入了quit字符
    			printf ("Sender(%s:%d) is exiting!\n", ipv4_addr, ntohs (cin.sin_port));
    		}
    
    	}
    
    	close (fd);
    
    	return 0;
    }
    

    组播

    • 单播方式只能发给一个接收方。

    • 广播方式发给所有的主机。过多的广播会大量占用网络带宽,造成广播风暴,影响正常的通信。

    • 组播(又称为多播)是一种折中的方式。只有加入某个多播组的主机才能收到数据。

    • 多播方式既可以发给多个主机,又能避免象广播那样带来过多的负载(每台主机要到传输层才能判断广播包是否要处理)

    网络地址

    • A类地址
      第1字节为网络地址,其他3个字节为主机地址。第1字节的最高位固定为0
      1.0.0.1 – 126.255.255.255
    • B类地址
      第1字节和第2字节是网络地址,其他2个字节是主机地址。第1字节的前两位固定为10
      128.0.0.1 – 191.255.255.255
    • C类地址
      前3个字节是网络地址,最后1个字节是主机地址。第1字节的前3位固定为110
      192.0.0.1 – 223.255.255.255
    • D类地址(组播地址)
      不分网络地址和主机地址,第1字节的前4位固定为1110
      224.0.0.1 – 239.255.255.255

    组播发送

    • 创建用户数据报套接字

    • 接收方地址指定为组播地址

    • 指定端口信息

    • 发送数据包

    组播接收

    • 创建用户数据报套接字

    • 加入多播组

    • 绑定本机IP地址和端口
      绑定的端口必须和发送方指定的端口相同

    • 等待接收数据

    加入多播组

    struct ip_mreq
    {
         struct  in_addr  imr_multiaddr;
         struct  in_addr  imr_interface;
    };
    
    struct  ip_mreq  mreq;
    bzero(&mreq, sizeof(mreq));
    mreq.imr_multiaddr.s_addr = inet_addr(“235.10.10.3”);
    mreq.imr_interface.s_addr = htonl(INADDR_ANY);
    
    setsockopt(sockfd, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq,  sizeof(mreq));
    

    组播收发 — 示例

    头文件

    #ifndef __MAKEU_NET_H__
    #define __MAKEU_NET_H__
    
    #include <stdio.h>
    #include <string.h>
    #include <unistd.h>
    #include <errno.h>
    #include <stdlib.h>
    #include <strings.h>
    #include <sys/types.h>			/* See NOTES */
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <netinet/ip.h>			/* superset of previous */
    
    #define SERV_PORT 5004
    #define MULTICAST_IP "235.10.10.3"
    
    #define QUIT_STR "quit"
    
    #endif
    

    sender.c

    /*udp demo */
    
    /* usage:
     * ./client serv_ip serv_port 
    */
    #include "net.h"
    void usage (char *s)
    {
    	printf ("\nThis is multicast demo!\n");
    	printf ("\nUsage:\n\t %s serv_ip serv_port", s);
    	printf ("\n\t serv_ip: udp server ip address(between 224~239 segment)");
    	printf ("\n\t serv_port: udp server port(serv_port > 5000)\n\n");
    }
    
    int main (int argc, char *argv[])
    {
    	int fd = -1;
    	int port = SERV_PORT;
    
    	port = atoi (argv[2]);
    	if (port < 0 || (port > 0 && port <= 5000)) {
    		usage (argv[0]);
    		exit (1);
    	}
    	struct sockaddr_in sin;
    	if (argc != 3) {
    		usage (argv[0]);
    		exit (1);
    	}
    
    	/* 1. 创建socket fd */
    	if ((fd = socket (AF_INET, SOCK_DGRAM, 0)) < 0) {	//UDP编程
    		perror ("socket");
    		exit (1);
    	}
    
    	/*2.1 填充struct sockaddr_in结构体变量 */
    	bzero (&sin, sizeof (sin));
    
    	sin.sin_family = AF_INET;
    	sin.sin_port = htons (SERV_PORT);	//网络字节序的端口号
    #if 0
    	sin.sin_addr.s_addr = inet_addr (argv[1]);
    #else
    	if (inet_pton (AF_INET, argv[1], (void *) &sin.sin_addr) != 1) {
    		perror ("inet_pton");
    		exit (1);
    	}
    #endif
    	printf ("multicast started!\n");
    	char buf[BUFSIZ];
    	while (1) {
    		fprintf (stderr, "pls input string:");
    		bzero (buf, BUFSIZ);
    		if (fgets (buf, BUFSIZ - 1, stdin) == NULL) {
    			perror ("fgets");
    			continue;
    		}
    
    		sendto (fd, buf, strlen (buf), 0, (struct sockaddr *) &sin, sizeof (sin));
    
    		if (!strncasecmp (buf, QUIT_STR, strlen (QUIT_STR))) {	//用户输入了quit字符
    			printf ("Client is exited!\n");
    			break;
    		}
    
    	}
    	close (fd);
    	return 0;
    }
    

    recviver.c

    #include "net.h"
    
    int main (void)
    {
    
    	int fd = -1;
    	struct sockaddr_in sin;
    
    	/* 1. 创建socket fd */
    	if ((fd = socket (AF_INET, SOCK_DGRAM, 0)) < 0) {	//udp程序
    		perror ("socket");
    		exit (1);
    	}
    
    	/* 2. 允许绑定地址快速重用 */
    	int b_reuse = 1;
    	setsockopt (fd, SOL_SOCKET, SO_REUSEADDR, &b_reuse, sizeof (int));
    
    	/*加入多播组*/
    	struct ip_mreq mreq;
    	bzero(&mreq, sizeof(mreq));
    	mreq.imr_multiaddr.s_addr = inet_addr(MULTICAST_IP);
    	mreq.imr_interface.s_addr = htonl(INADDR_ANY);
    	
    	setsockopt(fd, IPPROTO_IP, IP_ADD_MEMBERSHIP,&mreq, sizeof(mreq));
    
    	/*2. 绑定 */
    	/*2.1 填充struct sockaddr_in结构体变量 */
    	bzero (&sin, sizeof (sin));
    	sin.sin_family = AF_INET;
    	sin.sin_port = htons (SERV_PORT);	//网络字节序的端口号
    
    	/* 让服务器程序能绑定在任意的IP上 */
    #if 1
    	sin.sin_addr.s_addr = htonl (INADDR_ANY);
    #else
    	if (inet_pton (AF_INET, SERV_IP_ADDR, (void *) &sin.sin_addr) != 1) {
    		perror ("inet_pton");
    		exit (1);
    	}
    #endif
    	/*2.2 绑定 */
    	if (bind (fd, (struct sockaddr *) &sin, sizeof (sin)) < 0) {
    		perror ("bind");
    		exit (1);
    	}
    
    	char buf[BUFSIZ];
    	struct sockaddr_in cin;
    	socklen_t addrlen = sizeof (cin);
    	printf ("\nmulticast demo started!\n");
    	while (1) {
    		bzero (buf, BUFSIZ);
    		if (recvfrom (fd, buf, BUFSIZ - 1, 0, (struct sockaddr *) &cin, &addrlen) < 0) {
    			perror ("recvfrom");
    			continue;
    		}
    
    		char ipv4_addr[16];
    		if (!inet_ntop (AF_INET, (void *) &cin.sin_addr, ipv4_addr, sizeof (cin))) {
    			perror ("inet_ntop");
    			exit (1);
    		}
    
    		printf ("Recived from(%s:%d), data:%s", ipv4_addr, ntohs (cin.sin_port), buf);
    
    		if (!strncasecmp (buf, QUIT_STR, strlen (QUIT_STR))) {	//用户输入了quit字符
    			printf ("Client(%s:%d) is exiting!\n", ipv4_addr, ntohs (cin.sin_port));
    		}
    
    	}
    
    	close (fd);
    
    	return 0;
    }
    
    展开全文
  • Java开发技术大全(500个源代码).

    热门讨论 2012-12-02 19:55:48
    代码范例列表 第1章 示例描述:本章演示如何开始使用JDK进行程序的开发。 HelloWorldApp.java 第一个用Java开发的应用程序。 firstApplet.java 第一个用Java开发的Applet小程序。 firstApplet.htm 用来装载...
  • java源码包---java 源码 大量 实例

    千次下载 热门讨论 2013-04-18 23:15:26
    Java 组播组中发送和接受数据实例 3个目标文件。 Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非...
  • TCP/IP详解 卷1:协议--源代码

    热门讨论 2012-10-19 12:27:56
    12.4.2 多播组地址到以太网地址的转换 133 12.4.3 FDDI和令牌环网络中的多 134 12.5 小结 134 第13章 IGMP:Internet管理协议 136 13.1 引言 136 13.2 IGMP报文 136 13.3 IGMP协议 136 13.3.1 ...
  • java源码包

    2015-12-01 16:29:37
    Java 组播组中发送和接受数据实例 3个目标文件。 Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非...
  • TCPIP详解--共三卷

    2015-11-30 17:17:21
    12.4.2 多播组地址到以太网地址的转换 133 12.4.3 FDDI和令牌环网络中的多 134 12.5 小结 134 第13章 IGMP:Internet管理协议 136 13.1 引言 136 13.2 IGMP报文 136 13.3 IGMP协议 136 13.3.1 加入一个多播组 ...
  • TCP_IP详解卷1

    热门讨论 2010-12-29 10:53:54
    12.4.2 多播组地址到以太网地址的转换 133 12.4.3 FDDI和令牌环网络中的多 134 12.5 小结 134 第13章 IGMP:Internet管理协议 136 13.1 引言 136 13.2 IGMP报文 136 13.3 IGMP协议 136 13.3.1 加入一个多播组 ...
  • 书中给出了约500个图例,15 000行实际操作的C代码,采用举例教学的方法帮助你掌握TCP/IP实现。本书不仅说明了插口API和协议族的关系以及主机实现与路由器实现的差别。还介绍了4.4BSD-Lite版的新的特点,如多、长肥...
  • vc++ 应用源码包_1

    热门讨论 2012-09-15 14:22:12
    另外有只打开一个应用程序、CRichEdit的使用、最小到托盘、自动检测在线用户(多播组)等。 freeeim_FreeEIM_企业即时通讯软件源代码2010年8月份最新版 FTP、HTTP 多线程断点续传下载文件 源码 gdiplus应用实例 ...
  • 自己下载过,现在发上来,希望那个大家喜欢! 目者者录 译者序 前言 第一部分 传统网络API 第1章 NetBIOS 1 1.1 Microsoft NetBIOS 2 1.1.1 LANA编号 2 1.1.2 NetBIOS名字 4 ...附录C Winsock错误代码 481
  • DirectShow实务精选.rar

    2019-07-09 06:30:37
    3.1.3 IP组播技术 176 3.2 视频聊天 185 3.2.1 功能介绍 185 3.2.2 实现原理 187 3.2.3 采集设备自检 190 3.2.4 角色控制实现 204 3.2.5 开发网络发送Filter 223 3.2.6 开发网络接收Filter 230 3.2.7 程序...
  • Java 组播组中发送和接受数据实例 3个目标文件。 Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称...
  • tcpip详解 卷1 高清晰完整版pdf

    万次下载 热门讨论 2013-03-11 09:38:26
    12.4.2 多播组地址到以太网地址的转换 133 12.4.3 FDDI和令牌环网络中的多 134 12.5 小结 134 第13章 IGMP:Internet管理协议 136 13.1 引言 136 13.2 IGMP报文 136 13.3 IGMP协议 136 13.3.1 加入一个多播组 ...
  • java源码包2

    千次下载 热门讨论 2013-04-20 11:28:17
    Java 组播组中发送和接受数据实例 3个目标文件。 Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  ...
  • 21.9 接收IP多基础设施会话声明 451 21.10 发送和接收 454 21.11 SNTP:简单网络时间协议 457 21.12 小结 461 习题 461 第22章 高级UDP套接字编程 462 22.1 概述 462 22.2 接收标志、目的IP地址和接口索引...
  • 3.5.1 一个顺序执行的C实例 20 3.5.2 程序的开发版本 21 3.5.3 时间分片 22 3.5.4 单线程的进程 23 3.5.5 使各进程分离 23 3.6 执行新的代码 24 3.7 上下文切换和协议软件设计 25 3.8 并发和异步I/O 25 3.9...
  • java源码包3

    千次下载 热门讨论 2013-04-20 11:30:13
    Java 组播组中发送和接受数据实例 3个目标文件。 Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  ...
  • vc++ 应用源码包_5

    热门讨论 2012-09-15 14:45:16
    另外有只打开一个应用程序、CRichEdit的使用、最小到托盘、自动检测在线用户(多播组)等。 freeeim_FreeEIM_企业即时通讯软件源代码2010年8月份最新版 FTP、HTTP 多线程断点续传下载文件 源码 gdiplus应用实例 ...
  • vc++ 应用源码包_3

    热门讨论 2012-09-15 14:33:15
    另外有只打开一个应用程序、CRichEdit的使用、最小到托盘、自动检测在线用户(多播组)等。 freeeim_FreeEIM_企业即时通讯软件源代码2010年8月份最新版 FTP、HTTP 多线程断点续传下载文件 源码 gdiplus应用实例 ...
  • TCP/IP详解 卷1:协议--详细书签版

    热门讨论 2012-10-17 20:53:55
    12.4.2 多播组地址到以太网地址的转换 133 12.4.3 FDDI和令牌环网络中的多 134 12.5 小结 134 第13章 IGMP:Internet管理协议 136 13.1 引言 136 13.2 IGMP报文 136 13.3 IGMP协议 136 13.3.1 ...
  • 《Windows Sockets网络编程》是WindowsSockets网络编程领域公认的经典著作,由Windows ...C.5 按数值排序的错误代码表 附录D 用户必备 D.1 重要文件 D.2 编译与链接机制 D.3 各种WinSock的使用 D.4 各种编程语言的使用
  • Java 组播组中发送和接受数据实例 3个目标文件。 Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密 Java非对称...
  • 9.2.2 从Socket接收数据报:recvfrom 221 9.2.3 向Socket发送数据报:sendto 223 9.2.4 原生UDP Server方法 224 9.3 将原生UDP Client方法加入Echo Client Activity中 225 9.4 实现原生UDP Client 226 9.5 运行...
  • 这个是上次出现的异常和代码 ``` 2020-01-13 13:21:44 WARN [SqlExceptionHelper.java:143] - SQL Error: 1205, SQLState: 40001 2020-01-13 13:21:44 ERROR [SqlExceptionHelper.java:144] - Lock wait time...

空空如也

1 2
收藏数 38
精华内容 15
热门标签
关键字:

udp 组播接收c代码