2015-03-04 2 views
0

Привет всем Ну, я пытаюсь выполнить простое TCP/IP-соединение и отправить 3 удвоения на удаленный хост. Я работаю над VxWorks на сканере MRI.TCP/IP-соединение на VxWorks

Я использую socket.h для инициализации сокетов, но netinet/in.h отсутствует (специфично для этого пользовательского environement программирования, я думаю). Это действительно раздражает, потому что sockaddr_in находится в netinet/in.h.

Дело в том, что в функции подключения, sockaddr_in является recasted в SOCKADDR (socket.h)

Мой вопрос тогда: можно инициализировать IP-адрес только с SOCKADDR

int sockfd, portno, n; 

struct sockaddr_in serv_addr; 

sockfd = socket(AF_INET, SOCK_STREAM, 0); 

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

int buffer=0; 
n = write(sockfd,buffer,strlen(buffer)); 

close(sockfd); 

Спасибо вы очень за вашу помощь, Pierre

ответ

0

Да, sockaddr и sockaddr_in являются взаимозаменяемыми. Вы можете использовать тот или иной. Оба они содержат 16 байт. В коде вы можете определить: struct sockaddr serv_addr; Это будет то же самое.

Смежные вопросы