串列埠轉socket通訊

2021-07-16 03:05:38 字數 2156 閱讀 3550

做了乙個串列埠轉socket的通訊。。大概意思就是開發板串列埠收到的資訊。。通過socket傳出去

這裡因為是要用到socket。。所以要實現wifi模組的sta模式。。因為我這是單串列埠線。。我實現的是串列埠線實現接收到的資訊。。遠端網路ssh登陸的開發板。。

給串列埠傳資訊我用的w7端的串列埠除錯助手。。

socket接收是在電腦虛擬機器linux下接收的

給出伺服器端程式

#include#include#include#include#include#include#include#define maxline 4096

int main(int argc, char** argv)

memset(&servaddr, 0, sizeof(servaddr));

servaddr.sin_family = af_inet;

servaddr.sin_addr.s_addr = htonl(inaddr_any);

servaddr.sin_port = htons(6666);

if((bind(listenfd, (struct sockaddr*)&servaddr, sizeof(servaddr))) == -1)

if (listen(listenfd, 10) == -1)

printf("***************==waiting for client's request********************=\n");

while(1)

n = recv(connfd, buff, maxline, 0);

buff[n] = '\0';

printf("recv msg from client:%s", buff);

close(connfd);

}close(listenfd);

}

沒什麼特別的。。就是普通的伺服器端程式。。接收到的字串列印到螢幕上
客戶端的程式。。分兩個。。乙個是接收串列埠的字串。。乙個是網路socket通訊的
#include#include#include#include#include#include#include#include#include#include#include#define maxline 4096

int main(int argc, char **argv)

if ((sockfd = socket(af_inet, sock_stream, 0)) < 0)

memset(&servaddr, 0, sizeof(servaddr));

servaddr.sin_family = af_inet;

servaddr.sin_port = htons(6666);

if (inet_pton(af_inet, argv[1], &servaddr.sin_addr) <= 0)

if (connect(sockfd, (struct sockaddr*)&servaddr, sizeof(servaddr)) <0 )

read_chuan(sockfd);

close(sockfd);

return 0;

}

這裡沒有傳送的**段。。原因是我把這段**放到了串列埠接收的c檔案中。。

#include#include#include#include#include#include#include#include#include #includevoid serial_init(int fd)

int open_chuan(void)

serial_init(fd);

return fd;

}int read_chuan(int sockfd)

else

bzero(buf,buf);

sleep(1);}}

return 0;

}

這裡就是開啟對應的串列埠。。當收到資訊時列印到螢幕上並socket傳送出去。。沒接收到就一直迴圈檢測

這樣用串列埠除錯助手傳送給串列埠的資訊。。就會從串列埠除錯助手到開發板串列埠到開發板socket傳送端到電腦虛擬機器接收端接收。。完成串列埠轉socket的實現

linux串列埠轉socket

42 int main int argc,char ar 43 59 60 61 62 63 64 65 66 67 68 69 if opt null 70 引數解析 自己指定伺服器ip和埠以及串列埠引數等,串列埠引數除裝置以外,其他為可選 75 while ch getopt long argc...

串列埠與socket通訊

到資訊。對於那種需要很長時間才能完成的操作來說,重疊i o機制尤其有用,因為發起 重疊操作的執行緒在重疊請求發出後就可以自由地做別的事情了。在windows nt 2000上,提供真正可擴充套件的i o模型就是使用完成埠 completion port 的重疊i o。可以把完成埠看成系統維護的乙個佇...

串列埠與socket通訊

2.完成埠建立成功後,在socket和完成埠之間建立關聯。再次呼叫createiocompletionport 函式,這一次在第1個引數filehandle傳入建立的socket控制代碼,引數existingcompletionport 為已經建立的完成埠控制代碼。以下 建立了乙個socket並把它...