1.        两台计算机通信需要协议,通信的两台计算机IP必须唯一

2.        同一个计算机可以进行多个应用程序与其他计算机通信,IP地址唯一,而端口号是区别同一计算机(同一IP)的唯一标示。

3.        实际上就类似于一个办公室的总机号码(IP)和分机号码(端口号)

4.        协议:为了进行网络中的数据交换(通信)而建立的规则、标准或约定

5.        协议=语义+语法+规则

6.        不同层具有各自不同的协议

7.        上层使用下层提供的服务,实际通信在最底层完成

8.        对等层实体之间虚拟通信|

9.        TCP:面向连接的可靠的传输协议

10.      UDP:面向无连接的不可靠的传输协议

11.    端口是一种抽象的软件结构。应用程序通过系统调用与某端口建立连接后,传输层传给端口的数据都被响应的进行所接收,相应进程发给传输层的数据都通过该端口输出。

12.    端口用一个整数型标示符来表示。端口号跟协议相关,TCP/IP传输层的两个协议TCP和UDP是完全独立的两个软件模块,因此各自的端口号也相互独立。

13.    端口使用一个16位的数字来表示,它的范围是0~65535,1024以下的端口号保留给预定义的服务。例如:http使用的是80端口。

14.    socket(套接字):windows sockets只支持一个通信区域:网际域(AF_INET),这个域被使用网际协议簇通信的进程使用。

15.    C/S模式:客户机向服务器提出请求,服务器接收到请求后,提供相应的服务。

16.    套接字的类型

  a)        流式套接字:(SOCK_STREAM):面向连接可靠的数据传输服务,按顺序接收

  b)       数据包式套接字:(SOCK_DGRAM):无连接服务。接收顺序混乱。

  c)       原始套接字(SOCK_RAM)

17.    基于TCP(面向连接)的socket编程

a)        服务器端程序:

i.             创建套接字socket

ii.             将套接字绑定到一个本地地址和端口上bind

iii.             将套接字设为监听模式,准备接收客户请求listen

iv.             等待客户请求到了;当请求到来后,接收连接请求,返回一个新的对应于此次连接的套接字accept

v.             用返回的套接字和客户端进行通信send/recv

vi.             返回,等待另一客户请求

vii.             关闭套接字

b)       客户端程序:

i.             创建套接字socket

ii.             向服务端发出连接请求connect

iii.             和服务器端进行通信rend/recv

iv.             关闭套接字

18.    基于UDP的socket编程

a)        服务器端(接收端)程序:

i.             创建套接字socket

ii.             将套接字绑定到一个本地地址和端口上bind

iii.             等待接收数据recv/from

iv.             关闭套接字

b)       客户端(发送端)程序:

i.             创建套接字socket

ii.             向服务器发送数据sendto

iii.             关闭套接字

19.int WSAStartup (

  WORD wVersionRequested, //打算使用的最高winsock版本号 
  LPWSADATA lpWSAData  //是个结构体,接收socket的详细信息

);

20.    alt+F8:格式化代码

21.    面向TCP的连接,服务器端

  a) 套接字

SOCKET socket (
  int af,       //指定地址簇
  int type,     //socket类型
  int protocol  //协议

);

  b) 绑定

int bind (
  SOCKET s,                          //要绑定的套接字
  const struct sockaddr FAR*  name,  //指定了该套接字的本地地址信息
  int namelen                        //该地址结构的长度
);

struct sockaddr {

u_short    sa_family;

char       sa_data[14];

};

  c)       监听

int listen (
  SOCKET s,    
  int backlog  
);

  d)       接受连接

SOCKET accept (
  SOCKET s,                   
  struct sockaddr FAR* addr
  int FAR* addrlen            
);
 e)  发送
int send (
  SOCKET s,              //建立连接的socket
  const char FAR * buf,  //发送的数据
  int len,               //发送数据的长度
  int flags              
);
  f)  接收
int recv (
  SOCKET s,       
  char FAR* buf
  int len,        
  int flags       
);
  g)  需要的文件
#include <winsock2.h>
需要连接一个动态链接库:ws2_32.lib

  22.    服务器端:

  a)        Socket

  b)       连接:connect

 int connect (
  SOCKET s,                          
  const struct sockaddr FAR*  name
  int namelen                        
);

  c)       接收:recv

  d)       发送:send

  e)        关闭:closesocket

参考文献:

1、VC++ socket通信实例 总结

2、VC++ 使用socket基于TCP、UDP通信

VC++使用socket进行TCP、UDP通信实例总结的更多相关文章

  1. Python的网络编程[0] -> socket[2] -> 利用 socket 建立 TCP/UDP 通信

    Socket 目录 socket 的 TCP/IP 通信基本建立过程 socket 的 UDP 通信基本建立过程 socket 的 UDP 广播式通信基本建立过程 socket 的多线程通信建立过程 ...

  2. 高性能 TCP & UDP 通信框架 HP-Socket v3.5.3

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

  3. 高性能 TCP & UDP 通信框架 HP-Socket v3.5.2

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

  4. 高性能 TCP & UDP 通信框架 HP-Socket v3.5.1

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

  5. 高性能 TCP & UDP 通信框架 HP-Socket v3.4.1

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

  6. 高性能 TCP & UDP 通信框架 HP-Socket v3.3.1

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

  7. HP-SOCKET TCP/UDP通信框架库解析

    项目概述: HP-SOCKET是一套通用TCP/UDP通信框架,包括服务器.客户端.Agent组件:其目标是提供高性能.通用性.简易性.可扩展.可定制: 鉴于此,其仅实现基本的通用框架通信.数据收发功 ...

  8. 高性能 TCP & UDP 通信框架 HP-Socket v3.2.3

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

  9. 高性能 TCP & UDP 通信框架 HP-Socket v3.2.2 正式发布

    HP-Socket 是一套通用的高性能 TCP/UDP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C#.Del ...

随机推荐

  1. 撩课-Web大前端每天5道面试题-Day10

    1. px和em的区别? px和em都是长度单位; 区别是: px的值是固定的,指定是多少就是多少, 计算比较容易. em得值不是固定的,并且em会继承父级元素的字体大小. 浏览器的默认字体高都是16 ...

  2. 撩课-Java每天5道面试题第12天

    91.如何提升数据查询的效率? 1.首先检查表的结构是否合理, 因为采用多表查询的时候, 看主外键的引用关系是否适当. 如果不适当则重新设置表结构. 如果是应用中的系统, 则不需要更改表的字段, 只更 ...

  3. 撩课-Java每天10道面试题第2天

    11.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面, 以便更充分地注意与当前目标有关的方面. 抽象并不打算了解全部问题,而只是选择其中的一部分, 暂时不用部分细 ...

  4. linux ubuntu 安装nginx

    参考原文 在Ubuntu下安装Nginx有以下方法,但是如果想要安装最新版本的就必须下载源码包编译安装. 一.基于APT源安装 sudo apt-get install nginx 安装好的文件位置: ...

  5. IDEA 如何加上 tomcat

    前言: idea 上已经有一个 tomcat 了,因为这个 tomcat 为 32 的,需要加一个 64 为的 tomcat . 第一步: 第二步: 第三步: 点击 OK 就好. 结果:

  6. Postman-关于设置

    用Postman的时候由于没有中文版,所以想设置的完全符合自己的使用习惯不太容易,于是找了下关于设置的使用并转载记录一下,链接:https://www.jianshu.com/p/518ab60ebe ...

  7. CPU纯软件半虚拟化技术

    在2003年出现的Xen,使用了另外的一种半虚拟化的方案来解决x86架构下CPU的敏感指令问题.主要采用Hypercall技术.Guest OS的部分代码被改变,从而使Guest OS会将和特权指令相 ...

  8. Linux下tomcat端口、自启问题

    一.防火墙开放8080端口命令: 以下命令只针对 CentOs 7 以上版本,CentOS升级到7之后,使用firewalld代 替了原来的iptables: 启动: # systemctl star ...

  9. winform ComboBox控件反选

    winform ComboBox控件反选:int index = comboBox1.FindString(textBox2.Text); comboBox1.SelectedIndex = inde ...

  10. In-app Billing 概述

    这个文档讲解了In-app Billing的基础构成和功能,为了能够把In-app Billing功能添加到你的程序中,你需要很好的理解这些内容. 注意: 保证你的应用遵从发布地国家的相关法律. 举例 ...