windows socket
2024-08-24 22:13:30
//服务器
// winsvr.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <winsock2.h>
#include <conio.h>
#include <stdio.h>
#pragma comment(lib, "ws2_32.lib") void TCTServer()
{
SOCKET socksvr = socket(AF_INET, SOCK_STREAM,
IPPROTO_TCP);
if(INVALID_SOCKET == socksvr) {
return;
}
struct sockaddr_in svraddr = {};
svraddr.sin_family = AF_INET;
svraddr.sin_port = htons();
svraddr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
bind(socksvr, (struct sockaddr*)&svraddr,
sizeof(svraddr));
listen(socksvr, SOMAXCONN);
struct sockaddr_in clientaddr = {};
int nLen = sizeof(clientaddr);
SOCKET sockclient =
accept(socksvr, (struct sockaddr*)&clientaddr, &nLen); char szText[] = {};
recv(sockclient, szText, , );
printf("%s\n", szText);
char szSend[] = "Hello Client";
send(sockclient, szSend, sizeof(szSend), );
getch();
closesocket(sockclient);
closesocket(socksvr); } int main(int argc, char* argv[]) { WSADATA wsa = {};
WSAStartup(MAKEWORD(,), &wsa); TCTServer(); return ;
}
//客户端
// wincli.cpp : Defines the entry point for the console application.
// #include "stdafx.h"
#include <winsock2.h>
#include <conio.h>
#include <stdio.h>
#pragma comment(lib, "ws2_32.lib") void TCPClient()
{
SOCKET sockclient =
socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(INVALID_SOCKET == sockclient) {
return;
}
struct sockaddr_in addr = {};
addr.sin_family = AF_INET;
addr.sin_port = htons();
addr.sin_addr.S_un.S_addr =
inet_addr("127.0.0.1");
//连接到服务器
connect(sockclient, (struct sockaddr*)&addr, sizeof(addr));
char szSend[] = "Hello Server";
send(sockclient, szSend, sizeof(szSend), );
char szText[] = {};
recv(sockclient, szText, , );
printf("%s\n", szText);
getch();
closesocket(sockclient); }
int main(int argc, char* argv[])
{
WSADATA wsa = {};
WSAStartup(MAKEWORD(,), &wsa);
TCPClient();
return ;
}
最新文章
- 初识SQL 执行顺序
- 收拾那掉了一地的session
- CF 363B One Bomb(枚举)
- SpringMVC 拦截器
- QThread与QWidget使用
- ajax jsonp 原理 以及对数据的处理
- asp.net连接ORACLE数据库
- swift(2)元祖(Tuple)
- python-正铉
- Java入门(二):注释和基本数据类型
- 基于Manhattan最小生成树的莫队算法
- Oracle&#160;启动实例(instance)、打开数据库
- Jquery计算时间戳之间的差值,可返回年,月,日,小时等
- Emmagee——开源Android性能测试工具
- 前端性能优化之按需加载(React-router+webpack)
- Windows平台下使用CodeBlocks+GCC编译器生成动态dll,C#调用报错
- box2d 易错
- [19/05/03-星期五] GOF23_模式总结
- python format用法详解
- 用 Python 编写的 Python 解释器