网络编程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*,第四个参数传递给线程函数的参 ...
随机推荐
- Exploring the world of Android :: Part 2
September 17th, 2009 by Tom van Zummeren | And I’m back! Reporting live on the glorious adventures i ...
- 如何提高php应用的性能?
1. 如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍.2.$row[’id’] 的速度是$row[id]的7倍.3.echo 比 print快,并且使用echo的 ...
- c++ opencv 3.2 +Mfc VS2015窗体显示图片方法
本文仅涉及一些核心步骤,具体 OpenCV 的配置以及其他的细节问题,请参考 VS2010 / MFC + OpenCV 2.4.1打开图片. 1. 新建 MFC 对话框项目 基于对话框,不使用Uni ...
- linux 管道符与通配符
###管道符 *命令格: 命令1 | 命令2 //命令1的正确输出作为命令2的操作对象 ll | more netstat -an | grep xxx 通配符 类似于正则表达式 ? 一个以上 [] ...
- Activity(活动)
- JVM 体系结构概述 (一)
一.jvm运行在操作系统之上的,它与硬件没有直接交互: 二.JVM体系结构概览 JVM的基本结构:类加载器.执行引擎.运行时数据区.本地方法接口: 过程:class文件 ----> 类加载器 - ...
- node.js 关于 async的使用
第一次使用,感觉有点糊涂,后来实验明白了. 在串行执行中,经常会只做了第一步.后来明白了.是没有把回调函数放在里面简单就是: async.series( { ...
- 用VS2010打开VS2012项目
1.修改解决方案文件,即.sln文件: 用记事本打开.sln文件,把其中的 Microsoft Visual Studio Solution File, Format Version 12.00 # ...
- start()方法和run()方法有什么区别?
通过调用线程类的start()方法来启动一个线程,使线程处于就绪状态,即可以被JVM来调度执行,在调度过程中,JVM通过调用线程类的run()方法来完成实际的业务逻辑,当run()方法结束后,此线程就 ...
- Linux下文件的三种时间标记(atime ctime mtime)
在windows下,一个文件有:创建时间.修改时间.访问时间. 在Linux下,一个文件有:状态改动时间.修改时间.访问时间. 1)查看文件(或文件夹)的三种时间标记 (stat 命令) Access ...