网络编程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)
网络编程socket、udp的更多相关文章
- 网络编程Socket UDP
图表流程 linux udp测试代码 //server.c #include <stdio.h> #include <stdlib.h> #include <errno. ...
- 网络编程socket基本API详解(转)
网络编程socket基本API详解 socket socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信. socket ...
- 网络编程 单纯UDP通信
网络编程 单纯UDP通信 1,UDP发送端 2,UDP接收端 UDP发送端: #include <stdio.h> #include <unistd.h> #include & ...
- 铁乐学Python_Day33_网络编程Socket模块1
铁乐学Python_Day33_网络编程Socket模块1 部份内容摘自授课老师的博客http://www.cnblogs.com/Eva-J/ 理解socket Socket是应用层与TCP/IP协 ...
- Python网络编程socket
网络编程之socket 看到本篇文章的题目是不是很疑惑,what is this?,不要着急,但是记住一说网络编程,你就想socket,socket是实现网络编程的工具,那么什么是socket,什么是 ...
- java:网络编程(UDP (DatagramSocket和DatagramPacket)正则表达式)
java:网络编程(UDP (DatagramSocket和DatagramPacket)正则表达式) * TCP* 特点:面向连接,点对点的通信,效率较低,但安全可靠* UDP:用户数据报协议,类似 ...
- java网络编程socket\server\TCP笔记(转)
java网络编程socket\server\TCP笔记(转) 2012-12-14 08:30:04| 分类: Socket | 标签:java |举报|字号 订阅 1 TCP的开销 a ...
- Android 网络编程 Socket
1.服务端开发 创建一个Java程序 public class MyServer { // 定义保存所有的Socket,与客户端建立连接得到一个Socket public static List< ...
- 网络编程Socket之TCP之close/shutdown具体解释(续)
接着上一篇网络编程Socket之TCP之close/shutdown具体解释 如今我们看看对于不同情况的close的返回情况和可能遇到的一些问题: 1.默认操作的close 说明:我们已经知道writ ...
- linux网络编程-socket(37)
在编程的时候需要加上对应pthread开头的头文件,gcc编译的时候需要加了-lpthread选项 第三个参数是线程的入口参数,函数的参数是void*,返回值是void*,第四个参数传递给线程函数的参 ...
随机推荐
- Mysql: Specified key was too long; max key length is 1000 bytes
在使用quartz持久化的时候,笔者使用的mysql,为了以后方便迁移数据,笔者的Mysql默认引擎MyISAM 于是顺理成章的执行了quartz-2.2.3\docs\dbTables\tables ...
- Django——模板语言相关内容
Django模板语言相关内容 Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{ }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} ...
- python 标准输入输出sys.stdout. sys.stdin
import sys, time ## print('please enter your name:')# user_input=sys.stdin.readline()# print(user_in ...
- c# usercontrol 用户自定义控件无法显示在工具箱的解决办法
由于最开始x86平台,后来换成anyCPU 重新编译也没有删除x86目录下的dll ,也没重新生成 费x86 下的dll , 导致工具箱无法找到目录下的dll 无法加载自定义控件 右击工具栏中的内容选 ...
- C# 解决SharpSvn启动窗口报错 Unable to connect to a repository at URL 'svn://....'
在远程机打开sharpsvn客户端测试,结果报错 Svn启动窗口报错 Unable to connect to a repository at URL 'svn://...' 咋整,我在win10我的 ...
- Convert 实现 pdf 和图片格式互转
pdf 转换为图片 (注意:pdf 默认转换的是透明背景,如果转为jpg格式必须添加背景色.-background white -flatten) convert -background white ...
- Spring ConversionService 类型转换(一)Converter
Spring ConversionService 类型转换(一)Converter Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.h ...
- xgboost安装
安装连接:https://www.zhihu.com/question/46377605 软件连接:https://www.lfd.uci.edu/~gohlke/pythonlibs/#xgboos ...
- python学习 day6 (3月7日)
#__author : 'liuyang' #date : 2019/3/7 0007 a = ['a' , 'b' , 'c'] b = [] print(a is b ) # 空元组 可以 空列表 ...
- 再读c++primer plus 001
1. OOP强调的是在运行阶段(而不是编译阶段)进行决策,运行阶段指的是程序正在运行时,编译阶段指的是编译器将程序组合起来时. 2.变量的值都存储在栈中,而new从被称为堆或自由存储区的内存区域分配内 ...