• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > ipv6实现tcp编程示例

ipv6实现tcp编程示例

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了ipv6地址示例,tcp ipv6和tcp ipv4,tcp/ipv6,tcp/ipv6怎么设置,tcp/ipv6协议下载等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

开发测试环境:WIN7SP、 VS2005

TcpServer.cpp

#pragma comment(lib, "ws2_32.lib")

int main(int argc, char** argv)
{
 using namespace std;

 cout<<"Server Start..."<<endl;

 WORD wVersion = 0;
 WSADATA wsaData;
 memset(&wsaData, 0, sizeof(wsaData));
 wVersion = MAKEWORD(2, 2);

 if (0 != WSAStartup(wVersion, &wsaData))
 {
  return -1;
 }

 if (2 != LOBYTE(wsaData.wVersion) || 2 != HIBYTE(wsaData.wVersion))
 {
  WSACleanup();
  return -1;
 }

 struct addrinfo hints;
 struct addrinfo* res = NULL;
 memset(&hints, 0, sizeof(hints));
 hints.ai_family = AF_UNSPEC;
 hints.ai_socktype = SOCK_STREAM;
 hints.ai_protocol = IPPROTO_TCP;
 hints.ai_flags = AI_PASSIVE;

 if (0 != getaddrinfo(NULL, "6677", &hints, &res))
 {
  WSACleanup();
  return -1;
 }

 SOCKET sk = socket(res->ai_family, res->ai_socktype, res->ai_protocol);

 bind(sk, res->ai_addr, res->ai_addrlen);

 if (0 != listen(sk, 5))
 {
  WSACleanup();
  closesocket(sk);
  return -1;
 }

 struct sockaddr_storage storage;
 int len = sizeof(storage);
 memset(&storage, 0, len);

 SOCKET newSk = accept(sk, (struct sockaddr*)&storage, &len);
 closesocket(sk);

 char recvBuf[1024] = {'\0'};
 int lenRecv = 0;
 lenRecv = recv(newSk, recvBuf, 1024, 0);
 cout<<"Recv From Client:"<<recvBuf<<" Len:"<<lenRecv<<endl;
 send(newSk, recvBuf, lenRecv, 0);

 WSACleanup();
 closesocket(newSk);

 return 0;
}
</div>

TcpClient.cpp

#pragma comment(lib, "ws2_32.lib")

int main(int argc, char** argv)
{
 using namespace std;

 cout<<"Client Start..."<<endl;

 WORD wVersion = 0;
 WSADATA wsaData;
 memset(&wsaData, 0, sizeof(wsaData));
 wVersion = MAKEWORD(2, 2);

 if (0 != WSAStartup(wVersion, &wsaData))
 {
  return -1;
 }

 if (2 != LOBYTE(wsaData.wVersion) || 2 != HIBYTE(wsaData.wVersion))
 {
  WSACleanup();
  return -1;
 }

 struct addrinfo hints;
 struct addrinfo* res = NULL;
 memset(&hints, 0, sizeof(hints));
 hints.ai_family = AF_UNSPEC;
 hints.ai_socktype = SOCK_STREAM;
 hints.ai_protocol = IPPROTO_TCP;
 hints.ai_flags = AI_CANONNAME;

 if (0 != getaddrinfo("123.123.123.19", "6677", &hints, &res))
 {
  WSACleanup();
  return -1;
 }

 SOCKET sk = socket(res->ai_family, res->ai_socktype, res->ai_protocol);

 if (0 != connect(sk, res->ai_addr, res->ai_addrlen))
 {
  WSACleanup();
  closesocket(sk);
  return -1;
 }

 char sendBuf[1024] = {"abcdef"};
 char recvBuf[1024] = {'\0'};
 int lenRecv = 0;

 send(sk, sendBuf, strlen(sendBuf), 0);
 lenRecv = recv(sk, recvBuf, 1024, 0);
 cout<<"Recv From Server:"<<recvBuf<<" Len:"<<lenRecv<<endl;
 

 WSACleanup();
 closesocket(sk);

 return 0;
}
</div>

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • ipv6实现tcp编程示例
  • ipv6实现udp编程示例

相关文章

  • 2017-05-28C++表达式new与delete知识详解
  • 2017-05-28MFC创建模态对话框和非模态对话框的方法
  • 2017-05-28cin.get()和cin.getline()之间的区别
  • 2017-05-28如何寻找数组中的第二大数
  • 2017-05-28详解C语言中的ttyname()函数和isatty()函数的用法
  • 2017-05-28马尔可夫链算法(markov算法)的awk、C++、C语言实现代码
  • 2017-05-28C++ 基类指针和子类指针相互赋值的实现方法
  • 2017-05-28C++获取多浏览器上网历史记录示例代码(支持获取IE/Chrome/FireFox)
  • 2017-05-28C语言中的const和free用法详解
  • 2017-05-28c++中的4种类型转化方式详细解析

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C++实现简单的学生管理系统
    • C++ 学习之旅 Windows程序内部运行原理
    • 文件的合并与拆分
    • C++、python和go语言实现的简单客户端服务器代码示例
    • Codeforces 842A. Kirill And The Game (暴力算法比较)
    • c语言中十进制转二进制显示小工具的实现代码
    • c++中容器之总结篇
    • 最小生成树算法C语言代码实例
    • C++简单输出钻石菱形图效果
    • VC中BASE64编码和解码使用详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有