2015-12-15 1 views
-2

Я пытался сделать простую клиент-серверную программу, используя UDP, где я отправлю один клиент строковой формы на сервер и сервер подтвердит "понял". Все работает нормально, пока я не попытаюсь отправить ack. Посылает сообщение об ошибке «Транспортная конечная точка не подключена». Я использую sentto() для отправки в следующем формате на сервере.sendto(): Транспортная конечная точка не связана с ошибкой при попытке отправить ответ с сервера с использованием UDP

sendto(sid, message, strlen(message), 0, (struct sockaddr *) &saddr, len); 

и получать от как

recvfrom(sid, message, 50, 0, (struct sockaddr*) &caddr, &len); 

я использую AF_UNIX сокет. Программа работает нормально, когда я перенес ее в AF_INET.

+3

Просьба предоставить фрагмент кода, SendTo() должен работа здесь, если используется правильно – Ctx

+0

Я не могу добавить весь код. когда я использую «», это дает мне ошибку, говорящий о отступлении от кода. но он уже отстут. –

+0

AF_UNIX и UDP? О чем ты говоришь? – Ctx

ответ

2

Вы должны использовать recvfrom() для чтения из сокета и передать полученный socketinformation обратно sendto() так:

struct sockaddr_in client; 
socklen_t slen = sizeof(client); 

int l = recvfrom(fd, buf,  sizeof(buf), 0, &client, &slen); 
int st = sendto (fd, "got it", 6,   0, &client, slen); 

Это должно работать, как вы ожидаете