//服务器

// 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 ;
}

最新文章

  1. 初识SQL 执行顺序
  2. 收拾那掉了一地的session
  3. CF 363B One Bomb(枚举)
  4. SpringMVC 拦截器
  5. QThread与QWidget使用
  6. ajax jsonp 原理 以及对数据的处理
  7. asp.net连接ORACLE数据库
  8. swift(2)元祖(Tuple)
  9. python-正铉
  10. Java入门(二):注释和基本数据类型
  11. 基于Manhattan最小生成树的莫队算法
  12. Oracle&#160;启动实例(instance)、打开数据库
  13. Jquery计算时间戳之间的差值,可返回年,月,日,小时等
  14. Emmagee——开源Android性能测试工具
  15. 前端性能优化之按需加载(React-router+webpack)
  16. Windows平台下使用CodeBlocks+GCC编译器生成动态dll,C#调用报错
  17. box2d 易错
  18. [19/05/03-星期五] GOF23_模式总结
  19. python format用法详解
  20. 用 Python 编写的 Python 解释器

热门文章

  1. tomcat8 配置在线管理应用功能
  2. Hadoop集群datanode磁盘不均衡的解决方案
  3. C#:时间转换
  4. Android从assets目录下读取文件相关
  5. prince2 证书有用吗
  6. three.js初涉略(一)
  7. 关于sql中join
  8. Android动态方式破解apk终极篇(加固apk破解方式)
  9. boost asio sync
  10. 5分钟开启Esper之旅