#include<windows.h>
#include<iostream>
#include<winsock.h>
#pragma comment(lib,"ws2_32.lib")
using namespace std;
int main() {
WSADATA wsaData;
int iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);
if (iResult != NO_ERROR)return 1;
SOCKET m_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (m_socket == INVALID_SOCKET) {
WSACleanup();
return 1;
}
sockaddr_in addr;
int addr_len = sizeof(sockaddr_in);
int port = 9901;
int errCode;
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
addr.sin_addr.s_addr = inet_addr("127.0.0.1");
connect(m_socket, (SOCKADDR*)&addr, sizeof SOCKADDR);
char buf[2048]="hello world\n";
while(1)
send(m_socket, buf, strlen(buf) + 1, 0);
return 0;
}
#include<windows.h>
#include<iostream>
#include<winsock.h>
#pragma comment(lib,"ws2_32.lib")
using namespace std;
int main() {
WSADATA wsaData;
int iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);
SOCKET m_socket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
struct sockaddr_in addr;
int addr_len = sizeof(sockaddr_in);
int port = 9901;
int errCode;
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
addr.sin_addr.s_addr = htonl(INADDR_ANY);
errCode = bind(m_socket, (SOCKADDR*)&addr, addr_len);
errCode = listen(m_socket, 3);
SOCKET sockAcpt;
sockaddr_in from;
int len = sizeof from;
sockAcpt = accept(m_socket, (sockaddr*)&from,&len);
char buf[2048];
while (1) {
recv(sockAcpt, buf, 2048, MSG_PEEK);
cout << buf << endl;
}
return 0;
}
server
- 声明监听socket
- 给出地址和结构体
- bind
- listen
- 客户端连接上有一个socket
- recv 和send
client
- 声明socket
- 给出地址和端口
- connect
- recv 和send
client端没有指明自身端口,但也可以指出,一般不
建议,可能端口已经被占用,这个过程最好交给操作系统
分配
#include<windows.h>
#include<iostream>
#include<winsock.h>
#pragma comment(lib,"ws2_32.lib")
using namespace std;
int main() {
WSADATA wsaData;
int iResult = WSAStartup(MAKEWORD(2, 2), &wsaData);
if (iResult != NO_ERROR)return 1;
SOCKET m_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (m_socket == INVALID_SOCKET) {
WSACleanup();
return 1;
}
sockaddr_in addr;
int addr_len = sizeof(sockaddr_in);
int port = 9901;
int errCode;
addr.sin_family = AF_INET;
addr.sin_port = htons(port);
addr.sin_addr.s_addr = inet_addr("127.0.0.1");
sockaddr_in sockaddr_self;
sockaddr_self.sin_family = AF_INET;
sockaddr_self.sin_port = htons(12345);
sockaddr_self.sin_addr.s_addr = inet_addr("127.0.0.1");
bind(m_socket, (SOCKADDR*)&sockaddr_self, addr_len);
connect(m_socket, (SOCKADDR*)&addr, sizeof SOCKADDR);
char buf[2048]="hello world\n";
while(1)
send(m_socket, buf, strlen(buf) + 1, 0);
return 0;
}