我是靠谱客的博主 含糊水杯,最近开发中收集的这篇文章主要介绍用VB编写的上位机与嵌入式LINUX下位机的网络通信(TCP),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

下位机的程序,程序是按照linux系统中TCP/IP 协议通信的标准来写的。没有什么特殊的处理

#include<stdio.h>

 #include<string.h>
  #include<stdlib.h>
  #include<errno.h>
  
  #include<sys/types.h>
  #include<sys/socket.h>
   #include<unistd.h>//close()
   #include<netinet/in.h>//struct sockaddr_in
 #include<arpa/inet.h>//inet_ntoa
  
  #define DEST_PORT 8000
  #define DEST_IP_ADDRESS "10.1.51.150"
  
 /*客户端的处理过程*/
 void process_info(int s)
 {
          int send_num;
          int recv_num;
          char send_buf[]="tigerjibo";
          char recv_buf[50];
          while(1){
                  printf("begin sendn");
                  send_num = send(s,send_buf,sizeof(send_buf),0);
                  if (send_num < 0){
                          perror("send");
                          exit(1);
                  } else {
                          printf("send sucess:%sn",send_buf);
                  }
                  printf("begin recv:n");
                  recv_num = recv(s,recv_buf,sizeof(recv_buf),0);
                  if(recv_num < 0){
                          perror("recv");
                          exit(1);
                  } else {
                          recv_buf[recv_num]='';
                          printf("recv sucess:%sn",recv_buf);
                  }
          }
  }
  int main(int argc,char *argv[])
  {
          int sock_fd;
          struct sockaddr_in addr_serv;//服务器端地址
  
          sock_fd = socket(AF_INET,SOCK_STREAM,0);
          if(sock_fd < 0){
                  perror("sock");
                  exit(1);
          } else {
                  printf("sock sucessful:n");
          }
          memset(&addr_serv,0,sizeof(addr_serv));
          addr_serv.sin_family = AF_INET;
          addr_serv.sin_port =  htons(DEST_PORT);
          addr_serv.sin_addr.s_addr = inet_addr(DEST_IP_ADDRESS);
         if( connect(sock_fd,(struct sockaddr *)&addr_serv,sizeof(struct sockaddr)) < 0){
                 perror("connect");
                  printf("connect (%d)n",errno);
                  exit(1);
         } else {
                  printf("connect sucessfuln");
         }
          process_info(sock_fd);
          close(sock_fd);

  }



上位机


Private Sub Form_Load()
Text1.Text = "192.168.1.113"
Text2.Text = "8000"
Winsock1.LocalPort = Text2.Text
Text3.Text = ""
Text4.Text = ""
End Sub


Private Sub Timer1_Timer()
Select Case Winsock1.State
        Case 0: Label1.Caption = "服务器关闭"
        Case 2: Label1.Caption = "服务器侦听"
        Case 7:  Label1.Caption = "服务器已经连接"
    End Select
End Sub


Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
If Winsock1.State <> sckClosed Then Winsock1.Close
Winsock1.Accept requestID
SendMsg = "You have connected to client!"
Winsock1.SendData SendMsg
End Sub


Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim revData As String
'If Winsock1.State <> sckClosed Then Winsock1.Close
Winsock1.GetData revData


'If Text3.Test = "" Then
   Text3.Text = revData
'Else
   'Text3.Text = Text3.Text & vbCrLf & "To Server" & revData
'End If
  SendMsg = "Receive the string successfully!"
   Winsock1.SendData SendMsg
End Sub

上位机的程序中通信的协议都被VB封装起来。按照VB的服务器的编写就可以了


最后

以上就是含糊水杯为你收集整理的用VB编写的上位机与嵌入式LINUX下位机的网络通信(TCP)的全部内容,希望文章能够帮你解决用VB编写的上位机与嵌入式LINUX下位机的网络通信(TCP)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部