导航:首页 > 编程语言 > cudp网络编程

cudp网络编程

发布时间:2022-10-17 11:39:00

A. 如何编程使上位机(界面c#)与下位机(单片机keil c)通过TCP/UDP协议来实现通信,最好有源代码,谢谢~~

看来兄弟是想用单片机弄网络终端啊,但是你的问题描述不够精准, 如果你是想单片机和PC之间实现ip/tcp方式通讯, 那么在单片机端有支持这一协议可以和串口连接的的芯片, PC端的程序实际上你没必要求什么源码, 有源码你也不见得编译过去, 这个看看C#关于网络编程的几步走就行了, 很简单的. 这个方式实际最后还是单片机的串口在起作用, 但是好处是可以远距离和多设备通信, 不知道这个是不是你的本意, 如果你仅仅是为了完成实验想要实现单片机和winform的通讯那么没必要非用tcp协议, 串口还是很方便的, 你可以winform端绑定一个端口, 然后用VSPM虚拟串口软件来与单片机通讯, 外设就稍多了.希望我的回答可以帮到你, 不明白的可以追问!

B. 要学好网络编程 需要学什么

网络编程两方面,你是说的那个方面?

1.网页方面:
学习:ASP.NET,还有一些新兴的Ajax, MVC。。。另外HTML,javascript,DHTML也要熟悉,HTML5可以了解一下。
2.网络通信方面
学习.NET Socket/Winsock 2等就是那些TCP/IP的东西,还有一些网络架构的知识,对硬件知识也要有所了解。

C. c语言访问服务器

lz要先知道什么是socket,它是TCP/IP协议的API。再上层是http udp之类传输报文协议。而什么是服务器,如你所说tomcat服务器,他是一个http(s)服务器。处理由客户发送的HTTP报文。并返回报文给客户。
简单来说,http就是socket的一个封装。所以c语言使用socket理所当然能访问任何服务器。至于使用什么格式,你可以看看HTTP报文格式。

D. 关于用C语言开发一个简单的局域网聊天软件

Linux系统都是C写的 用C当然行得通

就是个socket编程嘛

我们原来做过一个的原理描述 当然 这个是C\S模式的 其实你可以做成 无服务端的

本系统具有局域网聊天功能。采用了C\S模式(即服务器创建套接字后,转换为监听套接字,一直在监听是否由客户端的请求。服务器接收到相应的请求后,进行相应的处理)。采用了TCP/IP(面向连接)协议。运用了SOCKET套接字实现了很方便的访问TCP/IP协议。多线程的操作。
服务器的程序(简述):
创建socket-->bind()-->listen()-->accept()-->recv/send()-->close();
客户端的程序(简述):
创建scoket-->发送connect-->recv/send()-->close();

E. c网络编程里的sendto函数会讲内容发送几次或者尝试发送几次是什么机制

只发送1次。
不会尝试重发。
UDP发送,只要扔到网络里就算成功,不管对方是否收到。

F. 在windows下用C语言如何实现socket网络编程,需要用到哪些头文件或者库

需要用到的头文件包含:

#include <winsock2.h>

#include <windows.h>

与Linux环境下socket编程相比,windows环境多了一个步骤:启动或者初始化winsock库

Winsock,一种标准API,一种网络编程接口,用于两个或多个应用程序(或进程)之间通过网络进行数据通信。具有两个版本:

Winsock 1:

Windows CE平台支持。

头文件:WinSock.h

库:wsock32.lib

Winsock 2:

部分平台如Windows CE貌似不支持。通过前缀WSA可以区别于Winsock 1版本。个别函数如WSAStartup、WSACleanup、WSARecvEx、WSAGetLastError都属于Winsock 1.1规范的函数;

头文件:WinSock2.h

库:ws2_32.lib

mswsock.h用于编程扩展,使用时必须链接mswsock.dll

(6)cudp网络编程扩展阅读

winsock库的加载与卸载:

加载:int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData);

加载成功,返回值为0。

WORD wVersionRequested:加载的winsock版本,使用宏MAKEWORD(x, y),x表示高字节,y表示低字节。然而使用时MAKEWORD(2, 2)。高字节与低字节相同~~

LPWSADATA lpWSAData:WSADATA结构的指针,传入参数后,系统帮助我们填充版本信息。有兴趣的可以看看结构体内容,不过基本用不着。

卸载:int WSACleanup(void);比起加载,卸载的函数真是轻松愉快。

G. c#网络编程UDP例子

usingSystem;
usingSystem.Net;
usingSystem.Net.Sockets;
usingSystem.Text;
usingSystem.Threading;
usingSystem.Windows.Forms;

namespaceUDPClient
{
publicpartialclassfrmUdp:Form
{
privateUdpClientsendUdpClient;
;
publicfrmUdp()
{
InitializeComponent();
IPAddress[]ips=Dns.GetHostAddresses("");
tbxlocalip.Text=ips[2].ToString();
intport=51883;
tbxlocalPort.Text=port.ToString();
tbxSendtoIp.Text=ips[2].ToString();
tbxSendtoport.Text=port.ToString();
}

//接受消息
privatevoidbtnReceive_Click(objectsender,EventArgse)
{
//创建接收套接字
IPAddresslocalIp=IPAddress.Parse(tbxlocalip.Text);
IPEndPointlocalIpEndPoint=newIPEndPoint(localIp,int.Parse(tbxlocalPort.Text));
receiveUpdClient=newUdpClient(localIpEndPoint);


ThreadreceiveThread=newThread(ReceiveMessage);
receiveThread.Start();
}

//接收消息方法
privatevoidReceiveMessage()
{
IPEndPointremoteIpEndPoint=newIPEndPoint(IPAddress.Any,0);
while(true)
{
try
{
//关闭receiveUdpClient时此时会产生异常
byte[]receiveBytes=receiveUpdClient.Receive(refremoteIpEndPoint);

stringmessage=Encoding.Unicode.GetString(receiveBytes);

//显示消息内容
ShowMessageforView(lstbxMessageView,string.Format("{0}[{1}]",remoteIpEndPoint,message));
}
catch
{
break;
}
}
}

//利用委托回调机制实现界面上消息内容显示
(ListBoxlistbox,stringtext);
privatevoidShowMessageforView(ListBoxlistbox,stringtext)
{
if(listbox.InvokeRequired)
{
=ShowMessageforView;
listbox.Invoke(showMessageforViewCallback,newobject[]{listbox,text});
}
else
{
lstbxMessageView.Items.Add(text);
lstbxMessageView.SelectedIndex=lstbxMessageView.Items.Count-1;
lstbxMessageView.ClearSelected();
}
}
privatevoidbtnSend_Click(objectsender,EventArgse)
{
if(tbxMessageSend.Text==string.Empty)
{
MessageBox.Show("发送内容不能为空","提示");
return;
}

//选择发送模式
if(chkbxAnonymous.Checked==true)
{
//匿名模式(套接字绑定的端口由系统随机分配)
sendUdpClient=newUdpClient(0);
}
else
{
//实名模式(套接字绑定到本地指定的端口)
IPAddresslocalIp=IPAddress.Parse(tbxlocalip.Text);
IPEndPointlocalIpEndPoint=newIPEndPoint(localIp,int.Parse(tbxlocalPort.Text));
sendUdpClient=newUdpClient(localIpEndPoint);
}

ThreadsendThread=newThread(SendMessage);
sendThread.Start(tbxMessageSend.Text);
}

//发送消息方法
privatevoidSendMessage(objectobj)
{
stringmessage=(string)obj;
byte[]sendbytes=Encoding.Unicode.GetBytes(message);
IPAddressremoteIp=IPAddress.Parse(tbxSendtoIp.Text);
IPEndPointremoteIpEndPoint=newIPEndPoint(remoteIp,int.Parse(tbxSendtoport.Text));
sendUdpClient.Send(sendbytes,sendbytes.Length,remoteIpEndPoint);

sendUdpClient.Close();

//清空发送消息框
ResetMessageText(tbxMessageSend);
}

//采用了回调机制
//使用委托实现跨线程界面的操作方式
(TextBoxtextbox);
privatevoidResetMessageText(TextBoxtextbox)
{
//Control.InvokeRequired属性代表
//如果空间的处理与调用线程在不同线程上创建的,则为true,否则为false
if(textbox.InvokeRequired)
{
=ResetMessageText;
textbox.Invoke(resetMessagecallback,newobject[]{textbox});
}
else
{
textbox.Clear();
textbox.Focus();
}
}

//停止接收
privatevoidbtnStop_Click(objectsender,EventArgse)
{
receiveUpdClient.Close();
}

//清空接受消息框
privatevoidbtnClear_Click(objectsender,EventArgse)
{
this.lstbxMessageView.Items.Clear();
}
}
}

H. 学习网络编程需要具备什么知识基础

学习网络编程需要具备计算机基础知识,以及一些英语基础,看题主描述是学习过C语言,所以算是有一定基础的,所以如果想要学习网络编程还是比较容易的。

现在用的比较多的是java,而且java的应用范围也比较广,即使后面不从事网络编程,想要做其他编程类的工作也是比较容易的,所以选择学java可能是个不错的选择。网络编程现在是在Windows下应用的比较广泛,可以先从Windows下学起。

学习网络编程的方式无非两种一种是自学,一种是去专业的学校学,选择哪种学习方式,题主可以根据自身的时间及经济状况来进行选择,毕竟适合自己的才是最好的。

I. C# C/S网络编程 由于系统缓存空间不足或列队已满,不能执行套接字上的操作

改成以下代码试试

public void ReceiveMsg()

{
// 启动异步接收
IAsyncResult iar = udpReceiveClient.BeginRecevice(
new AsyncCallback(ReceiveCallback),
udpReceiveState);
}

private void ReceiveCallback(IAsyncResult iar)
{
// 继续异步接收
ReceiveMsg();

// 完成前一次异步接收EndReceive处理
UdpState udpReceiveState = iar.AsyncState as UdpState;

//……
}
要注意的是:
1)Socket异步接收处理过程中用到了.net framework内部线程池,而线程池中线程的数量是有限制的。
2)ReceiveMsg中的 while(true)循环是多余的
3)ReceiveMsg中的 lock(this) 没有意义
4)WaitOne, Sleep() 都是多余的

阅读全文

与cudp网络编程相关的资料

热点内容
51单片机定时器方式2 浏览:330
命令行查看开机时间 浏览:812
python微博复杂网络分析 浏览:550
rf3148编程器 浏览:505
浙江标准网络服务器机柜云主机 浏览:587
设置网络的服务器地址 浏览:600
java图形界面设计 浏览:751
纯前端项目怎么部署到服务器 浏览:538
瓜子脸程序员 浏览:505
如何保证服务器优质 浏览:94
小微信aPP怎么一下找不到了 浏览:299
算法纂要学术价值 浏览:975
程序员你好是什么意思 浏览:801
倩女幽魂老服务器如何玩 浏览:561
电子钟单片机课程设计实验报告 浏览:999
看加密频道 浏览:381
程序员算不算流水线工人 浏览:632
三星电视我的app怎么卸载 浏览:44
简述vi编译器的基本操作 浏览:507
让程序员选小号 浏览:91