1.背景
两个程序(一个是C#做成的窗体程序,一个是C++做成的窗体程序)
2.问题:
C#与C++如何实现UDP通信??????????求大佬帮忙根据图片显示,做个sample程序,代码中最好能填加上注释(本人没学过这一块内容),求大佬帮帮忙!!!!!!!!!!!!!求帮忙!!!求帮忙!!!
3.想要的效果
左边这个界面上(用C#做成)的TextBox中输入“你好吗?”点击发送,右边的BB界面上(用C++做成)的能显示“你好吗?”,即实现UDP通信
4.相关图片
C#与C++如何实现UDP通信
- 写回答
- 好问题 提建议
- 追加酬金
- 关注问题
微信扫一扫
分享- 邀请回答
3条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
九头蛇daze 2020-09-24 15:02最佳回答 专家已采纳c#发送控制台程序代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Net.Sockets; using System.Net; using System.Net.NetworkInformation; namespace ConsoleApplication3 { class Program { static void Main(string[] args) { string sendString = null;//要发送的字符串 byte[] sendData = null;//要发送的字节数组 UdpClient client = null; IPAddress remoteIP = IPAddress.Parse("127.0.0.1"); int remotePort = 8080; IPEndPoint remotePoint = new IPEndPoint(remoteIP, remotePort);//实例化一个远程端点 while (true) { sendString = Console.ReadLine(); sendData = Encoding.Default.GetBytes(sendString); client = new UdpClient(); client.Send(sendData, sendData.Length, remotePoint);//将数据发送到远程端点 client.Close();//关闭连接 } } } }
c++接收控制台代码:
#include <Winsock2.h> #include <stdio.h> #pragma comment(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 sockSrv = socket(AF_INET, SOCK_DGRAM, 0); //创建地址结构体. SOCKADDR_IN addrSrv; addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY); addrSrv.sin_family = AF_INET; addrSrv.sin_port = htons(6000); //绑定套接字和地址. bind(sockSrv, (SOCKADDR *)&addrSrv, sizeof(SOCKADDR)); char recvBuf[100] = {0}; char sendBuf[100]; char tempBuf[200]; SOCKADDR_IN addrClient; int len = sizeof(SOCKADDR); while (1){ //接收数据. recvfrom(sockSrv, recvBuf, 100, 0, (SOCKADDR *)&addrClient, &len); if ('q' == recvBuf[0]){ sendto(sockSrv, "q", 1, 0, (SOCKADDR *)&addrClient, sizeof(SOCKADDR)); printf("chat end ! \n"); break; } sprintf(tempBuf, "%s say: %s", inet_ntoa(addrClient.sin_addr), recvBuf); printf("%s\n", tempBuf); printf("please input data:\n"); gets(sendBuf); //发送数据. sendto(sockSrv, sendBuf, 100, 0, (SOCKADDR*)&addrClient, sizeof(SOCKADDR)); } //关闭套接字. closesocket(sockSrv); //关闭套接字库. WSACleanup(); }
采纳该答案 已采纳该答案 专家已采纳评论解决 无用打赏举报微信扫一扫
分享评论登录 后可回复...
查看更多回答(2条)
报告相同问题?
提交
相关推荐 更多相似问题
- 2020-09-23 15:48回答 3 已采纳 c#发送控制台程序代码: ``` using System; using System.Collections.Generic; using System.Linq; using Sys
- 2017-04-09 07:52回答 2 已采纳 把C++的东西封装成dll,然后C#去调用这个dll提供的接口
- 2018-11-11 08:28回答 1 已采纳 完全可以,看这里: https://blog.csdn.net/fcauto2012/article/details/71651417 https://www.cnblogs.com/zhuxue
- 2018-08-17 21:06服务端发送给客户端,服务端有一串字符串,按照分隔符将其分割,并存入json,发给客户端,然后输出。
- 2021-11-20 21:31luckyone906的博客 基于Udp协议是无连接模式通讯,占用资源少,响应速度快,延时低。至于可靠性,可通过应用层的控制来满足。(不可靠连接) 使用Udp协议通讯需要具备以下几个...下面用代码实现简单的服务器---客户端通信 服务器端: .
- 2021-01-14 07:13梨漾的博客 实现代码如下: #udp协议通信import socket,timeclass UdpConnect: def get_udp(self,ip,port,message): #建立udp连接 mysocket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) mysocket.connect((ip, port)) #...
- 2019-02-11 16:31回答 2 已采纳 ``` public static object BytesToStruct(byte[] bytes, int pos, Type strcutType) {
- 2020-07-17 14:43回答 2 已采纳 unsigned char对应byte类型,unsigned char*如果是返回字符数组那么对应byte[]。 返回的数据,一般前面加个ref表示返回(int nChannel, ref int
- 2015-08-27 07:29回答 3 已采纳 ``` [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] struct timeval{ int tv_se
- 2021-08-10 20:33pjqlmz的博客 //UDP m_ulRemoteIP = 0; m_ulLocalIP = 0; } TSocket::~TSocket() { //释放Winsock库 WSACleanup(); } BOOL TSocket::LoadSocket() { //加载Winsock库 WSADATA wsa; if (WSAStartup(MAKEWORD(1,1),&wsa) != 0) { ...
- 2021-11-21 15:33luckyone906的博客 2.在云服务器上开发UDP或TCP地址和端口,这样做目的是使防火墙允许客户端的地址访问云服务器,否则不能通信。 3.服务器端使用云服务器上的内网IP创建Socket套接字(UDP或TCP协议),客户端连接和发送均使用云服务器...
- 2020-03-20 14:36C++新手编程的博客 VC++ TCP/UDP网络监控工具(源代码),可监控各个网络连接的状态,可监控到目标协议的源IP地址、目的IP地址、通信端口、大孝数据内容等。打开程序后,点击“开始监听”按钮,即可开始监控功能。 项目源代码: ...
- 2018-11-14 06:13回答 2 已采纳 byte[] filecnt = File.ReadAllBytes("文件名"); string sitecode = ""; for (int i = 0; i < 8; i++) {
- 2020-03-09 09:31回答 4 已采纳 BYTE bNodeaddr[6]; DWORD dwIp; 这两个写反了 而且考虑到数据对齐,bNodeaddr可能占用的是8个字节,具体你调试的时候看下内存
- 2018-08-29 02:43回答 5 已采纳 这种网络通讯的事情,最好多应用一下第三方软件,找一个网络调试助手,用来与Lua连接发送一下数据,看看对方能不能收到,再对比一下自己的代码;这样可以比较方便的定位问题,不然你这样猜着弄,事情是难以向前推
- 2020-02-09 18:09嵌入式-沉默的博客 Linux C编程 socket—Udp单播Udp简介概述特点Udp单播编程(服务器和客户端基本无差别)函数介绍Udp服务器示例Udp客户端示例 Udp简介 概述 UDP 是 User Datagram Protocol 的简称, 中文名是用户数据报协议,是一个...
- 2021-12-16 18:581 + 1=王的博客 )以及Wikipedia、Amazon、YouTube和Baidu(百度)统计出排名数据,只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。 TIOBE开发语言排行榜每月更新一次,依据的...
- 2020-03-26 14:30C++新手编程的博客 VC++ 通过UDP协议发送和接受绘图数据,是一个网络文件传输的通信实例,程序为了演示方便,分别编写了客户端和服务端,在客户端中绘图,并可将绘图数据发送给服务器端,使用了UDP协议构建的传输引擎。 接收端源码: ...
- 2020-12-01 15:20回答 4 已采纳 创建结构体,显示加载dll,通过stdcall方式调用函数,传递结构体指针进函数
- 2021-05-24 09:42十日君的博客 客户机/服务器模式 实现计算机通信3.试用C语言编写一对在以太网中发送和接收数据帧的应用,建议采用Socket的TCP协议端口,必须提供软件设计方案和流程图,软件代码的每一行都必须加注中文注释说明设计意图,不得抄袭...
- 没有解决我的问题, 去提问