Есть клиент: #include <stdio.h> #include <netinet/in.h> #include <sys/socket.h> #include <sys/types.h> #include <resolv.h> int main(int argc, char *parms[]) { int sock; struct sockaddr_in addr; sock=socket(PF_INET, SOCK_STREAM, 0); char in_letter, out_letter; if (argc==3) { bzero(&addr, sizeof(addr)); addr.sin_family = AF_INET; inet_addr(parms[1], &addr.sin_addr.s_addr); addr.sin_port=htons(atoi(parms[2])); printf("Remote destination: %s:%s\n", parms[1], parms[2]); } else { printf("So much parms!\n"); exit(0); }; if (connect(sock, (struct sockaddr *) &addr, sizeof(addr))!=0) { perror("Connect Error"); exit(0); }; int size=sizeof(addr); char buffer[1024]; do { scanf("%s", buffer); send(sock, buffer, strlen(buffer),0); } while (!(strncmp("bye", buffer, 4)==0); return(0); } есть сервер: #include <stdio.h> #include <netinet/in.h> #include <sys/socket.h> #include <sys/types.h> #include <resolv.h> int main() { int sock; struct sockaddr_in addr; sock=socket(PF_INET, SOCK_STREAM, 0); char in_letter, out_letter; bzero(&addr, sizeof(addr)); addr.sin_family = AF_INET; addr.sin_addr.s_addr=INADDR_ANY; addr.sin_port=htons(2000); bind(sock, (struct sockaddr*)&addr, sizeof(addr)); printf("Bind OK\n"); listen(sock,20); printf("Listen OK\n"); for (;;) { int clientsd; int size=sizeof(addr); clientsd=accept(sock, (struct sockaddr*)&addr, &size); printf("Connection OK\n"); if (clientsd>0) { char buffer[1024]; int nbytes; do { nbytes=recv(clientsd, buffer, sizeof(buffer), 0); if (nbytes>0) printf("%s",buff); } while (!(nbytes>0 && strncmp("bye\r", buffer, 4)==0); close(clientsd); } printf("Connetion broken\n"); } return(0); } Проблема такова: если запускаю сервер на локальном компьютере, потом соединяюсь клиентом, то все работает. НО! Есть сеть из 12 компьютеров, они соедены через хаб, на одном делаю: ifconfig eth0 up 192.168.50.1 netmask 255.255.255.0 на втором: ifconfig eth0 up 192.168.50.2 netmask 255.255.255.0 запускаю сервер на 192.168.50.1 и на 192.168.20.2 тоже, потом пытаюсь соединиться: ./client 192.168.50.2 2000 (соединяюсь с первой машины). И что я вижу: тот к кому я пытаюсь присоединиться молчит, а соединяюсь я сам с собой, причем сообщения шлються тоже мне. Почему так?.
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от pisun
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от pisun
Ответ на:
комментарий
от pisun
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от pisun
Ответ на:
комментарий
от AIv
Ответ на:
комментарий
от pisun
Ответ на:
комментарий
от AIv
Ответ на:
комментарий
от pisun
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от pisun
Ответ на:
комментарий
от pisun
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от pisun
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Сокеты в Си (продолжене) (2005)
- Форум Не понимаю почему не работает (2013)
- Форум Сокеты передача сообщений между компьютерами. Помогите найти ошибку. (2012)
- Форум [C] Получить данные на TCP сокет (2008)
- Форум C++, OpenSSL. Как соединиться с сервером через прокси? (2015)
- Форум Таймаут для connect() (2009)
- Форум Помогите разобраться с sendmsg & recvmsg. (2013)
- Форум Проблема повторного соеденения клиента к серверу через сокет (C++) (2015)
- Форум Подключиться к unix-сокету через bash (2020)
- Форум В чем ошибка чтения? (2020)