浏览器中通过JavaScript的UDP套接字
我可以在浏览器中通过javascript打开UDP套接字吗 我知道websocket只使用TCP,浏览器中唯一使用UDP的是WebRTC 还有别的办法吗? 我可以用WebBaseCalm编译使用UDP套接字的C++吗? 我尝试将此代码编译到WebAssembly:浏览器中通过JavaScript的UDP套接字,javascript,html,sockets,webrtc,webassembly,Javascript,Html,Sockets,Webrtc,Webassembly,我可以在浏览器中通过javascript打开UDP套接字吗 我知道websocket只使用TCP,浏览器中唯一使用UDP的是WebRTC 还有别的办法吗? 我可以用WebBaseCalm编译使用UDP套接字的C++吗? 我尝试将此代码编译到WebAssembly: int main(int argc, char *argv[]) { //initialize socket and structure int socket_info; struct sockaddr_in server; char
int main(int argc, char *argv[])
{
//initialize socket and structure
int socket_info;
struct sockaddr_in server;
char message[100];
char incoming_message[100];
printf("Input Message: ");
fgets(message, 100, stdin);
//create socket
socket_info = socket(AF_INET, SOCK_DGRAM, 0);
if (socket_info == -1) {
printf("Could not create socket");
}
//assign local values
server.sin_addr.s_addr = inet_addr("172.21.8.178");
server.sin_family = AF_INET;
server.sin_port = htons( 1100 );
//binds connection
if (bind(socket_info, (struct sockaddr *)&server, sizeof(server)) < 0) {
perror("Connection error");
return 1;
}
puts("Bind");
//assign new value to connect to
server.sin_addr.s_addr = inet_addr("192.118.68.1");
//checks connection
if (connect(socket_info, (struct sockaddr *)&server, sizeof(server)) < 0) {
perror("Connection error");
return 1;
}
puts("Connected");
//sends message
if(send(socket_info, message, strlen(message), 0) <0) {
perror("Send failed");
return 1;
}
puts("Message Sent");
//receives message back
if(recv(socket_info, incoming_message, sizeof(incoming_message), 0) <0) {
puts("Received failed");
return 1;
}
puts("Message received");
puts(incoming_message);
close(socket_info);
}
intmain(intargc,char*argv[])
{
//初始化套接字和结构
int socket_信息;
服务器中的结构sockaddr_;
字符消息[100];
字符传入_消息[100];
printf(“输入消息:”);
fgets(信息,100,标准输入);
//创建套接字
socket_info=socket(AF_INET,SOCK_DGRAM,0);
如果(套接字信息==-1){
printf(“无法创建套接字”);
}
//分配局部值
server.sin_addr.s_addr=inet_addr(“172.21.8.178”);
server.sinu family=AF\u INET;
server.sin_port=htons(1100);
//绑定连接
if(bind(socket_info,(struct sockaddr*)&server,sizeof(server))<0{
perror(“连接错误”);
返回1;
}
出售(“绑定”);
//指定要连接到的新值
server.sin_addr.s_addr=inet_addr(“192.118.68.1”);
//检查连接
if(connect(socket_info,(struct sockaddr*)&server,sizeof(server))<0){
perror(“连接错误”);
返回1;
}
看跌期权(“关联”);
//发送消息
如果(send(socket_info,message,strlen(message),0)否,则浏览器不支持UDP。此外,WebAssembly没有任何用于通信的API-要访问任何网络API,您必须将JavaScript函数公开给WebAssembly模块
我认为您唯一的选择是将您的UDP消息改编为WebSocket。有一些商业产品可以做到这一点,例如Kaazing gateway(),可能有开源的替代方案