я пишу программу в C и я хочу знать, как я могу слушать на ком порту и считывать данные из него пожалуйста, помогите мне спасибоСлушайте на ком порт
ответ
Я не уверен, что вы ищет, но это может иметь некоторую помощь, его в 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);
}
привет, я хочу запустить эту программу на внедренной системе – Mehdi
Какой компилятор вы используете для системы? Во всех случаях просто попробуйте скомпилировать эту программу и посмотреть, что вы получаете. – Vivek
Спасибо Vivek. Я сделал следующее для компиляции в Linux: измените
для Linux у вас есть Serial Programming HOWTO.
- 1. Слушайте порт из докера
- 2. Слушайте порт, который используется
- 3. Слушайте порт http с .htaccess
- 4. Слушайте дополнительный порт Microsoft Azure Nodejs
- 5. Как начать ком порт, используя MetroCom.dll в Дельфах
- 6. Nodejs: Слушайте порт 80 после использования setuid/setgid
- 7. Слушайте конкретный порт с UDPClient & Get Transmitted Packets
- 8. Слушайте сетевой порт и сохраняйте данные в текстовом файле
- 9. Слушайте порт 843 и сервер crossdomain.xml от httpd.conf
- 10. Слушайте порт непрерывно и дамп данных в текстовый файл
- 11. Слушайте определенный IP-адрес и порт с помощью tcplistener
- 12. Слушайте ряд портов UDP
- 13. PHP: Слушайте сообщения Syslog
- 14. сделать ком ссылку местного
- 15. последовательный порт или порт USB?
- 16. Слушайте разговор, используя переадресацию портов
- 17. Microsoft.Office.Interop.Word Слушайте на сэкономленные собственности
- 18. Слушайте медиаплеер на определенную продолжительность
- 19. Слушайте звук компьютера на Android
- 20. Слушайте системное меню на Android
- 21. Слушайте события на связыванию данных
- 22. Слушайте изменения громкости на Android
- 23. Слушайте изменение на одном входе
- 24. Слушайте сокращения шрифтов на iOS
- 25. Слушайте звук на определенную длительность
- 26. Python: Слушайте на двух портах
- 27. Слушайте конкретные изменения на contenteditable?
- 28. Problema синтаксис ком MySQL
- 29. причины выбора ком
- 30. Слушайте XSetSelectionOwner
Использование COM-портов зависит от ОС, поэтому вам нужно сообщить нам, для какой ОС вы хотите это использовать. –
OS-специфический * и * окружающая среда. Просто стандартные библиотеки C? Любая структура вообще? –
Вы отметили в комментарии, что вы разрабатываете для встроенной системы, но не упомянули операционную систему, которую вы будете использовать. Linux? Окна? BSD? Может, что-то еще? –