ipv6实现tcp编程示例
开发测试环境:WIN7SP、 VS2005
TcpServer.cpp
#include <iostream>
#include <WinSock2.h>
#include <ws2tcpip.h>
#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;
}
TcpClient.cpp
#include <iostream>
#include <WinSock2.h>
#include <ws2tcpip.h>
#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;
}
相关文章
- 这篇文章主要介绍了Springboot+TCP监听服务器搭建过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-10-28
- 本篇文章主要介绍了C# Socket的TCP通讯,socket通讯方式有两种:同步和异步,详细的介绍了这两种方法,有兴趣的可以了解一下。...2020-06-25
- 这篇文章主要介绍了C#基于TCP协议的服务器端和客户端通信编程的基础教程,文中讲解了C#中TCP编程主要相关的TcpListener类与TcpClient类用法,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了nginx使用IPV6的相关配置项介绍,首先查看编译参数是否编译了IPV6模块,然后介绍了监听IPV6的配置语法,需要的朋友可以参考下...2016-01-27
- 这篇文章主要介绍了使用C#实现基于TCP和UDP协议的网络通信程序的示例,文中分别编写了基本的服务器端和客户端,代码十分简单,需要的朋友可以参考下...2020-06-25
- windows 2003 连接限制TCP连接限制。目前我们有一台windows 2003 SP2的操作系统,提供web服务,还有一个自主开发的提供音频直播的服务...2016-01-27
- 首先,学好计算机网络知识真的很重要。虽然,学不好不会影响理解下面这个关于宏观讲解,但是,学好了可以自己打渔吃,学不好就只能知道眼前有鱼吃却打不到渔。在Java中网络程序有2种协议:TCP和UDP,下面可以和小编一起学习下...2020-04-25
C++ boost::asio编程-异步TCP详解及实例代码
这篇文章主要介绍了C++ boost::asio编程-异步TCP详解及实例代码的相关资料,需要的朋友可以参考下...2020-04-25- 下面小编就为大家带来一篇浅谈socket TCP编程中connect的一些坑。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-04-25
- 这篇文章主要介绍了ipv6实现tcp编程示例,需要的朋友可以参考下...2020-04-25
- TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的、可靠的、 基于IP的传输层协议。TCP在IP报文的协议号是6。TCP是一个超级麻烦的协议,而它又是互联网的基础,也是每个程序员必备的基本功。本文将详细介绍PHP Swoole与TCP三次握手。...2021-05-27
- 这篇文章主要为大家详细介绍了Java网络编程TCP实现文件上传功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-07-04
- 这篇文章主要介绍了GO语言实现简单TCP服务的方法,实例分析了Go语言实现TCP服务的技巧,需要的朋友可以参考下...2020-05-05
- 这篇文章主要给大家介绍了关于IPV4和IPV6正则表达式的相关资料,文中介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-05-07
- 本文介绍了C#获取Windows下某进程监听的TCP/UDP端口的方法,希望对您有所帮助。...2020-06-25
- 下面小编就为大家带来一篇QT网络编程Tcp下C/S架构的即时通信实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-04-25
- 这篇文章主要介绍了C# 使用Tcp/Udp协议的示例,文中代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-11-03
- 这篇文章主要为大家详细介绍了C#中TCP粘包问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
- 这篇文章主要介绍了在Nginx服务器中配置针对TCP的负载均衡的方法,另外还介绍了TCP负载均衡的执行原理,需要的朋友可以参考下...2016-01-27
windows server 2008 R2 禁用ipv6和隧道适配器
这篇文章主要介绍了windows server 2008 R2 禁用ipv6和隧道适配器,需要的朋友可以参考下...2016-01-27