我寫在C計劃,我想知道我怎麼可以聽COM端口 並從中 讀取數據,請幫我 感謝聽COM端口
Q
聽COM端口
-1
A
回答
1
我不知道你是什麼樣的尋找,但是這可能是一些幫助,它在Unix上:
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <bstring.h> /* bzero(), bcopy() */
#include <unistd.h> /* read(), write(), close() */
#include <errno.h>
#include <sys/signal.h>
int obtain_socket(int port);
void show_message(int sd);
void close_down(int sigtype);
#define PORT 2001 /* default port for server */
#define SIZE 512 /* max length of character string */
int ssockfd; /* socket for PORT; global for close_down() */
int main()
{
int sd, client_len;
struct sockaddr_in client;
signal(SIGINT, close_down); /* use close_down() to terminate */
printf("Listen starting on port %d\n", PORT);
ssockfd = obtain_socket(PORT);
while(1) {
client_len = sizeof(client);
if ((sd = accept(ssockfd, (struct sockaddr *) &client,
&client_len)) < 0) {
perror("accept connection failure");
exit(4);
}
show_message(sd);
close(sd);
}
return 0;
}
int obtain_socket(int port)
/* Perform the first four steps of creating a server:
create a socket, initialise the address data structure,
bind the address to the socket, and wait for connections.
*/
{
int sockfd;
struct sockaddr_in serv_addr;
/* open a TCP socket */
if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
perror("could not create a socket");
exit(1);
}
/* initialise socket address */
bzero((char *)&serv_addr, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
serv_addr.sin_port = htons(port);
/* bind socket to address */
if (bind(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) {
perror("could not bind socket to address");
exit(2);
}
/* set socket to listen for incoming connections */
/* allow a queue of 5 */
if (listen(sockfd, 5) == -1) {
perror("listen error");
exit(3);
}
return sockfd;
}
void show_message(int sd)
/* Print the incoming text to stdout */
{
char buf[SIZE];
int no;
while ((no = read(sd, buf, SIZE)) > 0)
write(1, buf, no); /* write to stdout */
}
void close_down(int sigtype)
/* Close socket connection to PORT when ctrl-C is typed */
{
close(ssockfd);
printf("Listen terminated\n");
exit(0);
}
0
對於Linux你有Serial Programming HOWTO。
相關問題
- 1. rxtx com端口
- 2. COM端口終端程序
- 3. 通過COM端口
- 4. 寫入COM端口
- 5. 閱讀com端口
- 6. Java Applet Com端口
- 7. Com端口術語?
- 8. 使用COM端口
- 9. 收聽UDP端口
- 10. 收聽端口5060
- 11. 串行COM端口號@讀
- 12. COM端口命令CRC XOR
- 13. RXTX如何從COM端口
- 14. 映射到com端口
- 15. COM端口被拒絕
- 16. Android藍牙COM端口
- 17. COM端口正在使用
- 18. COM端口連接問題
- 19. .NET庫訪問COM端口?
- 20. Pyserial COM端口問題
- 21. COM端口C++讀取0xFF
- 22. COM端口退出工作
- 23. COM端口的腳本
- 24. 無法打開端口Com
- 25. C#Com端口關閉
- 26. 如何解鎖COM端口
- 27. 當COM端口關閉時是否可以接收COM端口事件?
- 28. 收聽所有的端口
- 29. Winsock端口監聽器
- 30. WCF監聽TCP端口
使用COM端口是操作系統特定的,因此您需要告訴我們您希望使用哪種操作系統。 – 2010-02-09 06:45:27
操作系統特定*和*特定環境。只是標準的C庫?任何框架? – 2010-02-09 06:47:43
您在評論中指出您正在爲嵌入式系統開發,但未提及您將使用的操作系統。 Linux呢?視窗? BSD?也許還有別的東西? – 2010-02-09 07:35:18