Нужен TCP или UDP ?
Примерно так (выдрано из старого тестового проекта, должно заработать - сейчас не могу проверить)
Подставьте свои порты и IP-адреса (my_addr - локальный сокет, srv_addr - адрес сокета на PC) :
Передача по UDP
Код
unsigned short datasize = 1000;
unsigned char * data = (unsigned char *) malloc( datasize * 20);
// creating socket
struct sockaddr_in my_addr, srv_addr, srv2_addr;
int cln = socket( SOCK_DGRAM,
NET_SOCK_TYPE_DATAGRAM ,
IPPROTO_UDP );
int _status = 0;
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(100);
my_addr.sin_addr.s_addr = htonl(INADDR_ANY);
srv_addr.sin_family = AF_INET;
srv_addr.sin_port = htons(999);
srv_addr.sin_addr.s_addr = htonl(NetASCII_Str_to_IP("192.168.111.33", &err));
unsigned int net_delay = 5;
// sending some data
while (1)
{
_status = sendto(
cln,
(void *)data,
datasize,
0,
(struct sockaddr *)&srv_addr,
sizeof(struct sockaddr_in)
);
OSTimeDlyHMSM(0, 0, 0, net_delay);
} // sending loop
Передача по TCP (с подключением) :
Код
unsigned short datasize = 1000;
unsigned char * data = (unsigned char *) malloc( datasize * 20);
// creating socket
struct sockaddr_in my_addr, srv_addr, srv2_addr;
int cln = socket( SOCK_STREAM,
NET_SOCK_TYPE_STREAM ,
IPPROTO_TCP );
int _status = 0;
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(100);
my_addr.sin_addr.s_addr = htonl(INADDR_ANY);
srv_addr.sin_family = AF_INET;
srv_addr.sin_port = htons(999);
srv_addr.sin_addr.s_addr = htonl(NetASCII_Str_to_IP("192.168.111.33", &err));
_status = connect( cln,
(struct sockaddr *)&srv_addr,
sizeof(struct sockaddr_in)
);
unsigned int net_delay = 5;
if (_status < 0)
{
// closing socket - some error occured
close(cln);
}
else
{
// here socket connected
// sending some data
while (1)
{
_status = sendto(
cln,
(void *)data,
datasize,
0,
(struct sockaddr *)&srv_addr,
sizeof(struct sockaddr_in)
);
OSTimeDlyHMSM(0, 0, 0, net_delay);
} // sending loop
}// if connected