急~~! c++ socket发送数据的问题·~~~
为了实现C++ 和java 的通讯,用的是UDP socket, 数据是XML格式的数据流(字符串)。想要传的数据就是:<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<data>
<status>off</status>
</data>
我尝试了多次都没成功。。 是不是因为sendto不能带字符串的参数,只能是char[] 类型啊·???? 但是Java的程序规定只接收字符串流,,,,有经验的前辈,望指教。。。
程序代码:#include <iostream>
#include <string>
#include <winsock2.h>
#pragma comment(lib,"ws2_32.lib")
using namespace std;
void main()
{
cout<<"客户端启动"<<endl;
//初始化winsock
WSADATA wsaD;
WSAStartup(MAKEWORD(1,1),&wsaD);
//创建客户端socket
SOCKET sclient=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
//连接服务器
struct sockaddr_in servaddr;
servaddr.sin_family=AF_INET;
servaddr.sin_addr.s_addr=inet_addr("127.0.0.1"); //指定服务器
servaddr.sin_port=htons(1600); //指定端口
// cout<<"确实要建立连接? yes/no"<<endl;
char flag[3];
gets(flag);
if(strcmp(flag,"yes")==0)
{
connect(sclient,(struct sockaddr*)&servaddr,sizeof(servaddr)); //通过套接字连接主机
}
//发送数据
char buf[500]="<?xml version="1.0" encoding="UTF-8" standalone="no"?><data><status>off</status></data>";
while(true)
{
//通过套接字给主机发送字符串
send(sclient,buf,strlen(buf)+1,0); //字符串还有个结束标志,
}
}
