网络编程socket、udp

网络编程socket、udp

PS:主机字节顺序,个位在低字节上

计算机本身不能通讯,使通过在同一主机或者不同主机内的软件进行数据传输.

套接字socket:套接字socket可以参照文件指针来理解,文件指针是表示对文件打开进行某种操作,而套接字socket是对端口打开进行操作.

两种通讯方式UDP和TCP:UDP是包的传输模式,TCP是流的传输模式

UDP:(User Datagram Protocol)

网络编程socket、udp

编写UDP程序:windows下流程:

头文件#include<WinSock2.h>

编译库#pragma comment(lib,"ws2_32.lib")   有的时候编译成功,link不成功就是没有编译库进去

下面是接收程序:

#include<WinSock2.h>//socekt的头文件
#include<iostream>
#pragma comment(lib,"ws2_32.lib")//socket所需要的库
enum {PORT=8883};//定义端口
using namespace std;
int main()
{
WSADATA zhujing = { 0 };
int result = WSAStartup(0x0202,&zhujing);//启动WSA服务
SOCKET sock = socket(AF_INET,SOCK_DGRAM,0);//建立sock对象
if (INVALID_SOCKET == sock)
{
cout << "make socket failed!" << WSAGetLastError()<<endl;
return -1;
}
sockaddr_in sa = { AF_INET};//建立一个sockaddr_in结构体
sa.sin_port = htons(PORT);
sa.sin_addr.S_un.S_addr = 0;//inet_addr("192.168.10.250");
int n = bind(sock,(sockaddr*)&sa,sizeof(sa));
if (SOCKET_ERROR==n)
{
cout << "socketaddr failed!" << WSAGetLastError() << endl;
return -1;
}
while (1)
{
char s[500];
n = recv(sock, s, sizeof(s), 0);
s[n] = 0;
cout << s << endl;
}
return 0;
}

  

TCP:(Transmission Control Protocol,中心式传输协议)也叫C/S结构(computer/server)

上一篇:spring boot整合RabbitMQ(Direct模式)


下一篇:Sspring bean被初始化加载2次