通过JS判断联网类型和连接状态的实现代码

 <!DOCTYPE HTML>
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <meta name="viewport" content="initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
 <title>Connection API</title>
 </head>
 <body>
 <button id="btn" type="button">Get Ststus</button>
 <div id="re" style="margin-top: 10px;"></div>
 <script type="text/javascript">
 var connection = navigator.connection||navigator.mozConnection||navigator.webkitConnection||{tyep:'unknown'};
 var type_text = ['unknown','ethernet','wifi','2g','3g','4g','none'];
  
 alert(connection.type);
 var re_el = document.getElementById("re");
 var btn_el = document.getElementById("btn");
 function get_status(){
 if(typeof(connection.type) == "number"){
 connection.type_text = type_text[connection.type];
 }else{
 connection.type_text = connection.type;
 }
 if(typeof(connection.bandwidth) == "number"){
 if(connection.bandwidth > 10){
 connection.type = 'wifi';
 }else if(connection.bandwidth > 2){
 connection.type = '3g';
 }else if(connection.bandwidth > 0){
 connection.type = '2g';
 }else if(connection.bandwidth == 0){
 connection.type = 'none';
 }else{
 connection.type = 'unknown';
 }
 }
 var html = 'Type : '+connection.type_text;
 html += '<br>Bandwidth : '+connection.bandwidth;
 html += '<br>isOnline : '+navigator.onLine;
 re_el.innerHTML = html;
 }
  
 btn_el.onclick = function(){
 re_el.innerHTML = 'Waiting...';
 get_status();
 }
  
 </script>
 </body>
 </html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是基于TCP协议的C语言双人联网五子棋联网功能实现的示例代码,其中包括服务器端和客户端的代码: 服务器端代码: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> #define PORT 8888 #define MAXSIZE 1024 int main() { int listenfd, connfd, n; struct sockaddr_in servaddr, cliaddr; socklen_t clilen; char sendline[MAXSIZE], recvline[MAXSIZE]; // 创建socket listenfd = socket(AF_INET, SOCK_STREAM, 0); if (listenfd == -1) { printf("create socket error\n"); exit(1); } // 设置服务器地址和端口号 bzero(&servaddr, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_addr.s_addr = htonl(INADDR_ANY); servaddr.sin_port = htons(PORT); // 绑定socket和地址 if (bind(listenfd, (struct sockaddr *)&servaddr, sizeof(servaddr)) == -1) { printf("bind error\n"); exit(1); } // 监听socket if (listen(listenfd, 5) == -1) { printf("listen error\n"); exit(1); } printf("waiting for connection...\n"); while (1) { clilen = sizeof(cliaddr); // 接受客户端连接请求 connfd = accept(listenfd, (struct sockaddr *)&cliaddr, &clilen); if (connfd == -1) { printf("accept error\n"); exit(1); } printf("client %s:%d connected\n", inet_ntoa(cliaddr.sin_addr), ntohs(cliaddr.sin_port)); // 循环接收和发送数据 while (1) { // 接收客户端数据 n = recv(connfd, recvline, MAXSIZE, 0); if (n == -1) { printf("recv error\n"); break; } if (n == 0) { printf("client closed\n"); break; } recvline[n] = '\0'; printf("recv from client: %s\n", recvline); // 发送数据给客户端 printf("send to client: "); fgets(sendline, MAXSIZE, stdin); send(connfd, sendline, strlen(sendline), 0); } // 关闭连接 close(connfd); } // 关闭socket close(listenfd); return 0; } ``` 客户端代码: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> #define PORT 8888 #define MAXSIZE 1024 int main() { int sockfd, n; struct sockaddr_in servaddr; char sendline[MAXSIZE], recvline[MAXSIZE]; // 创建socket sockfd = socket(AF_INET, SOCK_STREAM, 0); if (sockfd == -1) { printf("create socket error\n"); exit(1); } // 设置服务器地址和端口号 bzero(&servaddr, sizeof(servaddr)); servaddr.sin_family = AF_INET; servaddr.sin_port = htons(PORT); if (inet_pton(AF_INET, "127.0.0.1", &servaddr.sin_addr) <= 0) { printf("inet_pton error\n"); exit(1); } // 连接服务器 if (connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr)) == -1) { printf("connect error\n"); exit(1); } printf("connected to server\n"); // 循环接收和发送数据 while (1) { // 发送数据给服务器 printf("send to server: "); fgets(sendline, MAXSIZE, stdin); send(sockfd, sendline, strlen(sendline), 0); // 接收服务器数据 n = recv(sockfd, recvline, MAXSIZE, 0); if (n == -1) { printf("recv error\n"); break; } if (n == 0) { printf("server closed\n"); break; } recvline[n] = '\0'; printf("recv from server: %s\n", recvline); } // 关闭socket close(sockfd); return 0; } ``` 需要注意的是,以上代码仅为示例代码,实际应用中需要根据具体需求进行修改和完善。同时,在实际应用中还需要考虑网络安全等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值