主要实现服务端发送,客户端接受!
遇到问题:
1、如何多开codeblock?
2、编译不通过,编译时出现undefined reference to `WSAStartup@8'。
下载libws2_32.a问件,添加到link library
服务端代码如下:
#include <iostream>
#include <string>#include <winsock2.h>
#pragma comment(lib,"Ws2_32.lib")
#define PORT 8050
using namespace std;
int main(){
WSADATA wsadata={0};
int iresult = WSAStartup(0x0202,&wsadata);
SOCKET sock =socket(AF_INET,SOCK_DGRAM,0);
sockaddr_in sa={AF_INET,htons(PORT)};
int n =bind(sock,(sockaddr*)&sa,sizeof(sa));
sa.sin_port=htons(9000);
sa.sin_addr.s_addr=inet_addr("10.160.68.85");//此处替换为自己主机的ip地址
char s[100];
while(true)
{
cin >> s;
sendto(sock,s,strlen(s),0,(sockaddr*)&sa,sizeof(sa));
}
return 0;
}
客户端代码:
#include <iostream>
#include <winsock2.h>
#pragma comment(lib,"Ws2_32.lib")
#define PORT 9000
using namespace std;
int main()
{
WSADATA wsadata={0};
int iresult = WSAStartup(0x0202,&wsadata);
SOCKET sock =socket(AF_INET,SOCK_DGRAM,0);
sockaddr_in sa={AF_INET,htons(PORT)};
int n =bind(sock,(sockaddr*)&sa,sizeof(sa));
char s[2048];
while(true)
{
n=recv(sock,s,sizeof(s),0);
s[n]='\0';
cout << s << endl;
}
return 0;
}