zoukankan      html  css  js  c++  java
  • 网络编程socket、udp

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

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

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

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

    UDP:(User Datagram Protocol)

    编写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)

  • 相关阅读:
    linux文件系统初探--Day6
    Oracle 内置函数
    libusb常用函数说明(转)
    将多个blv格式的视频合并为一个mp4格式视频
    泰迪杯赛后总结
    如何下载B站上版权受限的视频?
    查看Ubuntu版本信息
    Visual Studio存在多个项目时启动项目的问题
    mfc | 初识mfc
    re | [ACTF新生赛2020]Splendid_MineCraft
  • 原文地址:https://www.cnblogs.com/ma77045728/p/7007830.html
Copyright © 2011-2022 走看看