通信协议是不是用C语言编程出来的?
你可以把协议看成一个规定,是人为制定出来的,和用什么语言来实现没有关系。 比如:我和你通信,我们之间商量好我们的协议,怎么表示我请求和你通信,怎么拒绝或则接受我的通信请求,发什么字符表示什么意思。都是你和我商量好了的,这就成了我们之间的协议。至于现有的网络通信协议,最先是一个组织制定(比如OSI)然后大家都使用他的这个约定,然后就成为网络上通信的公有协议了。 协议还可以用硬件直接实现呢。因此,协议是一种约定, 和用什么语言实现没有关系。
这要看你的设备对哪种语言提供支持了,任何编程语言只是对特定操作系统的调用而已了。 真的处理数据的还是设备本身,可以是设备硬件电路完成功能,也可以是设备之上的系统软件,比如思科或者华为的设备,他们都有自己的系统软件,这些操作系统就没有对外提供编程的接口,因此只要设备硬件的开发商才可以在设备上开发协议
太笼统了,通信协议也分什么啊,不过大部分都是C/C++来做
应该是

C语言UDP协议
简单的学习代码,仅供参考:server.c#include #include #include #include #include #include #define SERVICE_PORT 8080 #define BUFSIZE 2048#define HEAD 4int main(int argc, char **argv){ struct sockaddr_in myaddr; /* our address */ struct sockaddr_in remaddr; /* remote address */ socklen_t addrlen = sizeof(remaddr); /* length of addresses */ int recvlen; /* # bytes received */ int fd; /* our socket */ int msgcnt = 0; /* count # of messages we received */ unsigned char buf[BUFSIZE]="ret_"; /* receive buffer */ /* create a UDP socket */ if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { perror("cannot create socketn"); return 0; } /* bind the socket to any valid IP address and a specific port */ memset((char *)&myaddr, 0, sizeof(myaddr)); myaddr.sin_family = AF_INET; myaddr.sin_addr.s_addr = htonl(INADDR_ANY); myaddr.sin_port = htons(SERVICE_PORT); if (bind(fd, (struct sockaddr *)&myaddr, sizeof(myaddr)) < 0) { perror("bind failed"); return 0; } /* now loop, receiving data and printing what we received */for (;;) { printf("waiting on port %dn", SERVICE_PORT); recvlen = recvfrom(fd, buf+HEAD, BUFSIZE, 0, (struct sockaddr *)&remaddr, &addrlen);if (recvlen > 0) { buf[HEAD+recvlen] = 0; printf("received message: "%s" (%d bytes)n", buf+HEAD, recvlen); } else { printf("uh oh - something went wrong!n"); } printf("sending response "%s"n", buf); if (sendto(fd, buf, strlen(buf), 0, (struct sockaddr *)&remaddr, addrlen) < 0) { perror("sendto"); } } close(fd); return 0;}client.c#include #include #include #include #include #define SERVICE_PORT 8080 #define BUFLEN 2048int main( int argc,char* argv[] ){ struct sockaddr_in myaddr, remaddr; int fd, i, slen=sizeof(remaddr); char sendbuf[BUFLEN]="hello"; /* message buffer */ char readbuf[BUFLEN]={0}; int recvlen; /* # bytes in acknowledgement message */ char *server = "127.0.0.1"; /* change this to use a different server */ /* create a socket */ if ((fd=socket(AF_INET, SOCK_DGRAM, 0))==-1) { printf("socket createdn"); } /* bind it to all local addresses and pick any port number */ memset((char *)&myaddr, 0, sizeof(myaddr)); myaddr.sin_family = AF_INET; myaddr.sin_addr.s_addr = htonl(INADDR_ANY); myaddr.sin_port = htons(0);if (bind(fd, (struct sockaddr *)&myaddr, sizeof(myaddr)) < 0) { perror("bind failed"); return 0;} memset((char *) &remaddr, 0, sizeof(remaddr)); remaddr.sin_family = AF_INET; remaddr.sin_port = htons(SERVICE_PORT);if (inet_aton(server, &remaddr.sin_addr)==0) { fprintf(stderr, "inet_aton() failedn"); exit(1); } printf("Sending packet %d to %s port %dn", i, server, SERVICE_PORT); if (sendto(fd, sendbuf, strlen(sendbuf), 0, (struct sockaddr *)&remaddr, slen)==-1) { perror("sendto"); exit(1); } /* now receive an acknowledgement from the server */ recvlen = recvfrom(fd, readbuf, BUFLEN, 0, (struct sockaddr *)&remaddr, &slen);if ( recvlen >= 0 ) { readbuf[recvlen] = 0; /* expect a printable string - terminate it */ printf("received message: "%s"n", readbuf); } close(fd); return 0;}如果需要整个工程,可以联系我。
UDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层--传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天UDP仍然不失为一项非常实用和可行的网络传输层协议。
UDP协议跟TCP/IP协议是最常用的两种网络通信协议。C语言中的UDP协议一般要看具体使用什么网络芯片如WIZNET公司的W5300这种网络芯片已经集成了UDP协议与TCP/IP协议用C语言开发的时候,只需要设置好对应的网络IP地址即可。下面贴出的代码是基于UDP协议的一段代码

串口通信软件一般使用什么语言开发的?
控件: 端口 利用自有事件数据到达->发送数据()收到信号->信号操作() 应该可以实现你需要的功能,控件的端口号/波特率等参数必须正确设置才能正常收发,具体可以参照易知识库的例程
QT开发?C++语言开发,跨平台通用win/mac/linux

网络通信方面什么编程语言最好
看你是做通讯协议开发还是通讯应用开发 协议开发一般使用C/C++, 而应用开发则使用ASP.NET,JAVA,PHP等
C#,java,C++都好,关键是要用熟一种。
感觉用java比较多,你也可以看看python。
C#,java都可以的,面向对象的语言比较好

如何用C#开发通信协议?
建议使用UDP 用多线程下面是简单代码 转载的 看下吧-------------------------------------------------------------------------using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;using System.Net.Sockets;using System.IO;using System.Net;namespace sample{public class NetworkStreamSendReadSample{readonly Encoding TARGET_ENCODING = Encoding.GetEncoding("sjis");readonly string HOST = "localhost";readonly int PORT = 5555;public void Execute(){StartTcpListener();StartRequestSending();}void StartTcpListener(){ThreadPool.QueueUserWorkItem(delegate(object stateInfo){TcpListener listener = new TcpListener(IPAddress.Any, PORT);listener.Start();for (; ; ){using (TcpClient client = listener.AcceptTcpClient()){using (StreamReader reader = new StreamReader(client.GetStream(), TARGET_ENCODING)){Console.WriteLine(reader.ReadToEnd());System.Diagnostics.Debug.WriteLine(reader.ReadToEnd());}}}});}void StartRequestSending(){ThreadPool.QueueUserWorkItem(delegate(object stateInfo){for (; ; ){using (TcpClient client = new TcpClient(Dns.GetHostEntry(HOST).AddressList[1].ToString(), PORT)){using (StreamWriter writer = new StreamWriter(client.GetStream(), TARGET_ENCODING)){DateTime now = DateTime.Now;writer.Write(string.Format("{0} {1}", now.ToLongDateString(), now.ToLongTimeString()));}}Thread.Sleep(1000);}});}} }
是用在哪方面的? 是不是基于TCP/IP的? 如果是基于TCP/IP的,那应该是应用层协议吧? 应用层协议相对容易实现。
这只能个人玩玩罢了,个人玩玩就行,参考c# socket编程 门禁系统,哪不是要用到单片机编程,用c#行吗,用C语言还差不多
你当然可以开发自己的通信协议的哈

本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/60981.html。