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(); } }

UCloud 618活动:香港云服务器月付13元起;最高可购3年,AMD/Intel系列

ucloud6.18推出全球大促活动,针对新老用户(个人/企业)提供云服务器促销产品,其中最低配快杰云服务器月付5元起,中国香港快杰型云服务器月付13元起,最高可购3年,有AMD/Intel系列。当然这都是针对新用户的优惠。注意,UCloud全球有31个数据中心,29条专线,覆盖五大洲,基本上你想要的都能找到。注意:以上ucloud 618优惠都是新用户专享,老用户就随便看看!点击进入:uclou...

DiyVM:50元/月起-双核,2G内存,50G硬盘,香港/日本/洛杉矶机房

DiyVM是一家比较低调的国人主机商,成立于2009年,提供VPS主机和独立服务器租用等产品,其中VPS基于XEN(HVM)架构,数据中心包括香港沙田、美国洛杉矶和日本大阪等,CN2或者直连线路,支持异地备份与自定义镜像,可提供内网IP。本月商家最高提供5折优惠码,优惠后香港沙田CN2线路VPS最低2GB内存套餐每月仅50元起。香港(CN2)VPSCPU:2cores内存:2GB硬盘:50GB/R...

易探云服务器怎么过户/转让?云服务器PUSH实操步骤

易探云服务器怎么过户/转让?易探云支持云服务器PUSH功能,该功能可将云服务器过户给指定用户。可带价PUSH,收到PUSH请求的用户在接收云服务器的同时,系统会扣除接收方的款项,同时扣除相关手续费,然后将款项打到发送方的账户下。易探云“PUSH服务器”的这一功能,可以让用户将闲置云服务器转让给更多需要购买的用户!易探云服务器怎么过户/PUSH?1.PUSH双方必须为认证用户:2.买家未接收前,卖家...

udp编程为你推荐
商品管理手机千牛 商品管理用哪个好啊 我想买高级版的 不知道哪个比较好显示系统平视显示系统是什么查杀木马怎样手动查杀木马混乱模式拳皇2002的李梅怎么进入混乱模式?价格咨询米兰心理张桂茹价格: 咨询一次的费用是多少封包是什么洛克王国封包是什么意思it人物IT人员是做什么的`广州品牌网站设计广州品牌设计公司手机证书申请手机证书可以再什么网站上申请啊余额宝客户端我的余额宝是用电脑操作充值的,为什么用手机的余额宝客户端看不到?
便宜的虚拟主机 中国域名交易中心 免费cn域名 flashfxp怎么用 bbr 优惠码 shopex空间 evssl html空间 最好的空间 admit的用法 php空间推荐 域名转接 徐正曦 创建邮箱 中国域名 卡巴斯基试用版下载 七牛云存储 广州服务器托管 建站技术 更多