udp编程Java语言应用中实现UDP协议编程的方法?

udp编程  时间:2021-08-30  阅读:()

CSocket之UDP编程

#include <stdio.h> #include <Winsock2.h> #ment(lib,"ws2_32.lib") void main() { WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD( 1, 1); err = WSAStartup( wVersionRequested, &wsaData ); if ( err != 0 ) { return; } if ( LOBYTE( wsaData.wVersion ) != 1 || HIBYTE( wsaData.wVersion ) != 1 ) { WSACleanup( ); return; } SOCKET sersocket=socket(AF_INET,SOCK_DGRAM,0); SOCKADDR_IN seraddr; seraddr.sin_addr.S_un.S_addr=htonl(INADDR_ANY); seraddr.sin_family=AF_INET; seraddr.sin_port=htons(5000); bind(sersocket,(SOCKADDR*)&seraddr,sizeof(SOCKADDR)); SOCKADDR clientaddr; int len=sizeof(SOCKADDR); char revbuf[100]; char sendbuf[100]; recvfrom(sersocket,revbuf,100,0,(SOCKADDR*)&clientaddr,&len); printf("%s ",revbuf); scanf("%s",&sendbuf); sendto(sersocket,sendbuf,strlen(sendbuf)+1,0,(SOCKADDR*)&clientaddr,len); closesocket(sersocket); WSACleanup(); } #include <stdio.h> #include <Winsock2.h> #ment(lib,"ws2_32.lib") void main() { WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD( 1, 1); err = WSAStartup( wVersionRequested, &wsaData ); if ( err != 0 ) { return; } if ( LOBYTE( wsaData.wVersion ) != 1 || HIBYTE( wsaData.wVersion ) != 1 ) { WSACleanup( ); return; } SOCKET sockclient=socket(AF_INET,SOCK_DGRAM,0); SOCKADDR_IN clientaddr; clientaddr.sin_addr.S_un.S_addr=_addr("127.0.0.1"); clientaddr.sin_family=AF_INET; clientaddr.sin_port=htons(5000); int len=sizeof(SOCKADDR); char revbuf[100]; char sendbuf[100]; printf("请输入内容: "); while(1) { scanf("%s",&sendbuf); sendto(sockclient,sendbuf,strlen(sendbuf)+1,0,(SOCKADDR*)&clientaddr,len); recvfrom(sockclient,revbuf,100,0,(SOCKADDR*)&clientaddr,&len); printf("%s ",revbuf); } closesocket(sockclient); WSACleanup(); } 大同小异,CSocket只是进行了封装而已,原理是一样的,编程要思路灵活才行。

在MFC中的UDP程序怎么编写用CAsyncSocket或者CSocket?

呵呵整一个SOCKET盲 还一上来就要用封装好的MFC类,哀分少啊,帮你说说吧 建立一个新类从CAsyncSocket public 派生来,叫 MySock,然后在CXXXDlg的头文件加个变量 MySock m_socket; 然后 CXXXDlg中的INITDIALOG初始化, m_socket.Create(0,SOCK_DGRAM); 使用UDP恩首先你要考虑到服务器端也是使用UDP的协议的,然后就可以调用 m_socket.SendTo(buffer,strlen(buffer),3333,"xxx.xxx.xxx.xxx"); 3333是服务器等待接收数据的端口,XXX.XXX.XXX.XXX 是服务器的IP,恩域名也可以...如果服务器是TCP的话要用Connect连接然后用Send方法发送数据,使用完调用close关闭SOCKET,也疴可以不关,类销毁时会自动释放所使用资源,恩至于要等待接收数据,UDP需要BIND,可以在CREATE的时候就绑定上,而TCP不光要绑定上还要listen监听,TCP有连接来后要用ept接收连接,给它一个新的 CAsyncSocket,呵呵就说这么点,对了在BOOL CXXXApp::InitInstance()的初始化函数中添加 if (!AfxSocketInit()) { AfxMessageBox(IDP_SOCKETS_INIT_FAILED); return FALSE; } 还有头文件 #include <afxsock.h> // MFC socket extensions .或者你在创建工程时选择上WINSOCKET, 恩对了CSocket是堵塞的套接字,需要同步很强的工作再选择他,一般使用异步的,给分!

TCP 和 UDP 在socket编程中的区别

一、TCP与UDP的区别 基于连接与无连接   对系统资源的要求(TCP较多,UDP少)   UDP程序结构较简单   流模式与数据报模式   TCP保证数据正确性,UDP可能丢包   TCP保证数据顺序,UDP不保证   部分满足以下几点要求时,应该采用UDP 面向数据报方式 网络数据大多为短消息   拥有大量Client   对数据安全性无特殊要求   网络负担非常重,但对响应速度要求高   具体编程时的区别 socket()的参数不同   UDP Server不需要调用listen和ept   UDP收发数据用sendto/recvfrom函数   TCP:地址信息在connect/ept时确定   UDP:在sendto/recvfrom函数中每次均 需指定地址信息   UDP:shutdown函数无效

急求C语言编写的基于UDP的点对点的聊天程序代码

UDP啊。



服务器: socket(AF_INET, SOCK_DATEGRAM,0); 初始化地址。

bind一下。

然 recv或者 sendto。

客户端: 一样。

socket因为UPD。

直接conect一样。

sendto就行了。

注意 :1.聊天 需要 IO多路复用。

select 或者 poll。

可以实现 2. 群聊。



其实就是一个 发送给多个。



把IP往出口 轮询就行。

3.添加好用。

登陆?。

这个没界面。

后台把这些存到数据库里。

启动的时候。

seletc出来。



你给多少分。

都没人给你写的。

自己百度吧。





C++的UDP编程,设置广播地址为255.255.255.255,广播不出去

看起来不像是代码有错 而更像这两台机器的设置有问题。

几个问题: 1、从别的机器上发出的广播,这两台机器能收到吗? 2、从这两台机器向255.255.255.255发广播,如果在它们上面运行wireshark,能抓到UDP包吗? 3、这两台机器的网卡没有被设成promiscuous mode吧? 4、把这两台机器的网卡和其他工作的机器的网卡换了看看什么结果? 5、如果你的机器跑windows 7,可以在这两台机器和其他机器上用work and connection center里面自带work map看看各台机器之间是怎样连接的。

Java语言应用中实现UDP协议编程的方法?

//发送端SocketSendFile.java import java.io.*; import .*; public class SocketSendFile { public static final int SER_PORT=666; public static final int CLI_PORT=8484; public static final String SER_IP="192.168.0.35"; public static int bufSize = 1024; public static byte] mess = new bytebufSize]; //建立Socket引用 public static DatagramSocket dp; public static void main(String] args) throws Exception { dp = new DatagramSocket(SER_PORT); //调用构造函数SocketSendFile,并传递参数args0](所要传输的文件名) SocketSendFile(args0]); } public static void SocketSendFile(String file2) throws Exception { //定义一个计数器 int pos =0; //设置写入流 FileInputStream fis = new FileInputStream(file2); BufferedInputStream bis = new BufferedInputStream(fis); DataInputStream dis = new DataInputStream(bis); int i; do { i = dis.read(); int j=0; while (j<1024 & i != -1) { messpos++] = (byte) i; i=dis.read(); j++; } dp.send(new DatagramPacket(mess,pos,Address.getByName(SER_IP),CLI_PORT)); } while (i != -1); fis.close(); } } //接收端SocketReceiveFile.java import .*; import java.io.*; public class SocketReceiveFile { public static int bufSize=1024; public static byte] mess=new bytebufSize]; public static DatagramSocket dp; public static final int SER_PORT=8484; public static void main(String] args) throws Exception { dp = new DatagramSocket(SER_PORT); SocketReceiveFile(args0]); } public static void SocketReceiveFile(String file1) throws Exception { FileOutputStream fos = new FileOutputStream(file1); BufferedOutputStream bos = new BufferedOutputStream(fos); DataOutputStream dos = new DataOutputStream(bos); int i; DatagramPacket p = new DatagramPacket(mess,mess.length); while(true) { boolean j=false; while (p.getData().length != 0) { dos.write(p.getData()); dp.receive(p); j=true; } // System.out.println(new String(p.getData(),0,p.getLength())); if (j) System.out.println("文件传送完毕."); } // fos.close(); } }

Digital-VM:服务器,$80/月;挪威/丹麦英国/Digital-VM:日本/新加坡/digital-vm:日本VPS仅$2.4/月

digital-vm怎么样?digital-vm在今年1月份就新增了日本、新加坡独立服务器业务,但是不知为何,期间终止了销售日本服务器和新加坡服务器,今天无意中在webhostingtalk论坛看到Digital-VM在发日本和新加坡独立服务器销售信息。服务器硬件是 Supermicro、采用最新一代 Intel CPU、DDR4 RAM 和 Enterprise Samsung SSD内存,默认...

rfchost:洛杉矶vps/双向CN2 GIA,1核/1G/10G SSD/500G流量/100Mbps/季付$23.9

rfchost怎么样?rfchost是一家开办了近六年的国人主机商,一般能挺过三年的国人商家,还是值得入手的,商家主要销售VPS,机房有美国洛杉矶/堪萨斯、中国香港,三年前本站分享过他家堪萨斯机房的套餐。目前rfchost商家的洛杉矶机房还是非常不错的,采用CN2优化线路,电信双程CN2 GIA,联通去程CN2 GIA,回程AS4837,移动走自己的直连线路,目前季付套餐还是比较划算的,有需要的可...

LetBox:美国洛杉矶/新泽西AMD大硬盘VPS,10TB流量,充值返余额,最低3.3美元两个月

LetBox此次促销依然是AMD Ryzen处理器+NVME硬盘+HDD大硬盘,以前是5TB月流量,现在免费升级到10TB月流量。另外还有返余额的活动,如果月付,月付多少返多少;如果季付或者半年付,返25%;如果年付,返10%。依然全部KVM虚拟化,可自定义ISO系统。需要大硬盘vps、大流量vps、便宜AMD VPS的朋友不要错过了。不过LetBox对帐号审核严格,最好注册邮箱和paypal帐号...

udp编程为你推荐
竞争者简述竞争对手分析的内容距离查询在PKPM软件中怎样查询距离安卓开发环境搭建安卓开发环境怎么搭建?文件保护vivo手机文件被保护网站数据分析报告网站流量统计分析的页面浏览数分析网通玩电信游戏卡怎么办网通怎么在电信玩游戏不卡查看加密空间好友QQ空间有限制访问,怎么查看加密的QQ空间?双11数据淘宝京东双十一的成交额是真的吗青岛it社区青岛李沧区有哪些社区怎样清除历史记录清除历史记录
vps动态ip 星星海 数字域名 环聊 web服务器搭建 cdn网站加速 免费网络空间 存储服务器 服务器托管价格 cdn加速 magento主机 godaddy域名 卡巴斯基免费版下载 29美元 winscpiphone 主机托管 koss耳机 ftp服务器架设 韩剧国语版789 lickmyboobs 更多