当前位置: 首页 > news >正文

已备案网站数量成都网站制作成都

已备案网站数量,成都网站制作成都,网站建设公司的公众号,学校网站网站建设一.什么是Socket? Socket,又叫套接字,是在应用层和传输层的一个抽象层。它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用以实现进程在网络中通信。 socket分为流socket和数据报socket,分别基于tcp和udp实现。 SOCK_STREAM 有以下…

一.什么是Socket?

Socket,又叫套接字,是在应用层和传输层的一个抽象层。它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用以实现进程在网络中通信。

 socket分为流socket和数据报socket,分别基于tcp和udp实现。

SOCK_STREAM 有以下几个特征:

  1. 数据在传输过程中不会消失;
  2. 数据是按照顺序传输的;
  3. 数据的发送和接收不是同步的。

UNIX/Linux 程序在执行任何形式的 I/O 操作时,都是在读取或者写入一个文件描述符。一个文件描述符只是一个和打开的文件相关联的整数,它的背后可能是一个硬盘上的普通文件、FIFO、管道、终端、键盘、显示器,甚至是一个网络连接

请注意,网络连接也是一个文件,它也有文件描述符!你必须理解这句话。

与 UNIX/Linux 不同的是,Windows 会区分 socket 和文件,Windows 就把 socket 当做一个网络连接来对待,因此需要调用专门针对 socket 而设计的数据传输函数,针对普通文件的输入输出函数就无效了。

tcpserver代码:

#include "socket.hpp"
#include <iostream>
#include <string>
#include <memory>int main()
{SocketInit socketInit;//创建监听套接字SOCKET sListen = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);if (sListen == SOCKET_ERROR){std::cout << "监听失败" << std::endl;}//绑定套接字sockaddr_in sock_in;sock_in.sin_family = AF_INET;sock_in.sin_port = htons(1234);sock_in.sin_addr.S_un.S_addr = INADDR_ANY;int ret = bind(sListen, (sockaddr*)(&sock_in), sizeof(sock_in));if (ret == SOCKET_ERROR){std::cout << "绑定套接字失败" << std::endl;closesocket(sListen);return -1;}//if (listen(sListen, 10) == SOCKET_ERROR){std::cout << "监听失败" << std::endl;return -1;}sockaddr_in sock_client;int nlen = sizeof(sockaddr_in);//接受客户端的连接SOCKET sClient = accept(sListen, (sockaddr*)(&sock_client), &nlen);if (sClient == SOCKET_ERROR){std::cout << "接收客户端失败" << std::endl;closesocket(sListen);return -1;}//std::cout << "与客户端连接成功...." << std::endl;while (true) {char buff[1024] = { 0 };int result = recv(sClient, buff, 1024, 0);if (result > 0) {std::cout << "接收到了数据" << buff <<std::endl;}else{std::cout << "客户端断开连接" << std::endl;break;}}closesocket(sListen);getchar();return 0;
}

client代码:

#define _WINSOCK_DEPRECATED_NO_WARNINGS
#include "socketinit.hpp"
#include <iostream>
#include <string>
#include <memory>
#include <WS2tcpip.h>int main()
{SocketInit socketInit;//创建套接字SOCKET sClient = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);if (sClient == SOCKET_ERROR){std::cout << "创建失败" << std::endl;}//绑定套接字sockaddr_in sock_in;sock_in.sin_family = AF_INET;sock_in.sin_port = htons(1234);sock_in.sin_addr.S_un.S_addr = inet_addr("192.168.152.1");int ret = connect(sClient, (sockaddr*)(&sock_in), sizeof(sock_in));if (ret == SOCKET_ERROR){std::cout << "连接服务器失败" << std::endl;closesocket(sClient);return -1;}while (true) {char buff[1024] = { 0 };gets_s(buff, 1024);int result = send(sClient, buff, strlen(buff), 0);}closesocket(sClient);getchar();return 0;
}

http://www.yayakq.cn/news/587029/

相关文章:

  • 一个空间放几个网站保险做的好的网站有哪些内容
  • 莆田网站建设莆田flash网站开发
  • 食品饮料网站建设松江网站建设培训费用
  • 东莞品牌网站定制深圳十大教育培训机构排名
  • 维护网站信息永久ae88tv人口
  • 个人网站建设合同汉中建设工程招投标
  • 手工制作风筝seo是什么职业
  • 企业个性化网站建设费用杭州网站推广优化哪里好
  • 外贸公司手机网站无锡网站制作服务
  • 权威的建筑工程网站iis如何做同时运行两个网站80端口
  • 搜房网站建设分析全球速卖通的特点
  • the7 wordpress 汉化镇江网站建设方式优化
  • 外链提交网站东莞住房与城乡建设官网
  • 微信手机网站三合一东莞搜索优化十年乐云seo
  • 网站的倒计时怎么做wordpress响应式插件
  • 北京市建设工程交易中心网站自己做淘宝优惠券网站
  • 阜阳建设工程质量监督网站七牛云存储可以做网站
  • 找外包公司做网站网站登录模板下载
  • 金华安全网站建设怎么收费网站建设属于什么岗位
  • 网站搭建心得体会南京网站设计制作公司排名榜
  • 网站标题特殊符号vs2010网站开发示例
  • 网站设计影响seo的因素泉州网站建设推广企业
  • 网站开发及企业推广智囊团建网上登录入口
  • 中职学校网站建设的厂家做网站页面怎么做
  • 杭州网站开发响应式wordpress搭建博客视频教程
  • 网站有了域名然后怎么做天津建设网证件查询
  • 虹口 教育 网站建设小程序怎么添加手机桌面
  • 网站建设所需美工企业网站建设的策划书
  • 深圳网站建设空间更新网站要怎么做呢
  • 专业科技网站建设18款禁用黄a免费