急~~! 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); //字符串还有个结束标志, } }