C#应用视频教程1.1 Socket通信基础
做Socket通信之前,我们首先要实现几个基本的功能
获取本机IP地址(如果我们要做Socket的服务器,肯定不希望用户每次填写本机IP地址,而是自动获取本机IP地址,这一点我们最好能做的比已有的软件更合理,更好用),下面的方法简单实现了获取本机IP地址,后面一个方法还把IPV6的地址也得到了,但是目前还没有什么用处(可能以后用得到)

能PING通一个远程的IP地址(如果我们要做Socket的客户端,最好在连接之前能知道目标IP能不能连接上,如果不能PING通,则直接告诉用户网络连接有问题就行了,此外还能做心跳包,比如QQ断线检测,每隔一定时间PING通就认为网络连接正常,否则认为网络有问题,所以这个功能还是比较实用的)

能从一个网址解析出他对应的IP地址(这个在自动化领域应用不是很广泛,因为这个行业里面不管是Socket的服务器还是客户端都是一些小设备,IP地址都是自己设置上去的,不会牵扯到某个网址的IP,但是为了把这个类做的比较全,也可以加深对Socket相关类的理解,还是有必要涉及一下,读者至少需要明白其实一个网址就是一个IP地址)

了解什么是服务器,什么是客户端(给别人提供服务的就是服务器,享受服务的就是客户端,就像宾馆提供房间,客户才能入住),我们可以先用第三方的软件测试一下(在附件程序中打开SocketTest这个工具,它本身是JAVA写的,但是很短小很精悍,我们本节教程目的也是实现这样一个功能),首先是Server端开启某个Port,然后Client端连接上去,然后就可以互相发消息,当然也可以断开连接等等(要切记首先必须服务器开启服务,客户端才能连接,如果宾馆的某个房间不开放,那客户端就没法进去,至于房间开放,客户进去之后,谁跟谁说话都是可以的)

其次要知道Socket通信的意义,因为他是基于以太网的通讯协议,比串口,总线都要简单的多,也好用的多,基本上大部分的工业设备都会支持这个协议,而且不受限于操作系统,微软的,安卓的,Linux,MaxOS的都可以互相发消息。即便是在同一台计算器上,不同软件之间也可以互相通信,所以把这个通信研究好的意义还是很大的(在下面的测试中,我用了一个另外的调试工具跟SocketTest做通讯测试,像这样的网络调试助手网上很容易找到)

最后来看一下百度百科对Socket的解释,比较形象(他比喻成插座)
https://baike.baidu.com/item/socket/281150?fr=aladdin

更多教学视频和资料下载,欢迎关注以下信息:
我的优酷空间:
http://i.youku.com/acetaohai123

我的在线论坛:
http://csrobot.gz01.bdysite.com/

问题交流:
QQ:910358960
C#应用视频教程1.1 Socket通信基础的更多相关文章
- c# Socket通信基础
一.IP地址操作类 1.IPAddress类 a.在该类中有一个 Parse()方法,可以把点分的十进制IP表示转化成IPAddress类,方法如下: IPAddress address = I ...
- C#应用视频教程1.3 Socket通信客户端完善
我们先把前面的代码封装成一个完整的类,因为跟网络相关的方法并不一定是建立socket的服务器和客户端,所以还是应该把两个分开,比如获取本机IP,修改本机IP,PING远程主机这些事情应该放在一个单独的 ...
- C#应用视频教程1.2 Socket通信客户端实现
接下来我们尝试实现最简单的Socket客户端,为了确保只可能你的代码有问题,服务器要先用别人成熟的代码测试(这也是编程的一个技巧,先不要用自己写的客户端测试自己写的服务器,这样出了问题你也不知道谁有问 ...
- socket.io 入门篇(一)
本文原文地址:https://www.limitcode.com/detail/591b114bb1d4fe074099d9c9.html 前言 本篇介绍使用node.js模块组件socket.io实 ...
- socket 网络编程笔记 一
初始socket模块 Serve端代码 import socket sk = socket.socket() #默认为TCP连接 """socket 里面两个方法 fam ...
- HTTP真的很简单
原文:HTTP Made Really Easy因为我本身网络基础就很差,所以看到这篇文章一方面是学习网络知识,另一方面为了锻炼我蹩脚的英语水平,文中如有错误,欢迎浏览指正! 前言 在看这篇文章的时候 ...
- c++ builder xe2 (Embarcadero rad studio) 远程调试 同样适用于 delphi 远程调试 教程
转载:http://www.cnblogs.com/zhangdongsheng/p/3411056.html 每次要远程调试的时候都要看半天的xe2英文帮助文档,今天正好有点时间,把它写下来. 一. ...
- 【热门收藏】iOS开发人员必看的精品资料(100个)——下载目录
iPhone.iPad产品风靡全球,巨大的用户群刺激着iOS软件开发需求,然而国内人才缺口很大,正处于供不应求的状态,ios开发前景大好.我们整理了51CTO下载中心100份热门的ios开发资料,做了 ...
- iOS开发人员必看的精品资料(100个)
目录下载地址:http://down.51cto.com/data/416672 附件预览如下: iOS游戏开发之Unity3D引擎系列 http://down.51cto.com/zt/399 iP ...
随机推荐
- 详细理解Java虚拟机的运行过程
基本概述: Java虚拟机简称JVM,是JRE中的一部分,也是Java程序运行的最关键的部分.完整的Java运行流程大致包括编译.java文件形成.class文件,然后根据.class文件的内容进行一 ...
- RE:从零开始的AGC被虐(到)生活(不能自理)
RE:从零开始的AGC被虐(到)生活(不能自理) 「一直注视着你,似近似远,总是触碰不到.」 --来自风平浪静的明天 AtCoder Grand Contest 001 B: Mysterious L ...
- 【贪心+Treap】BZOJ1691-[Usaco2007 Dec]挑剔的美食家
[题目大意] 有n头奶牛m种牧草,每种牧草有它的价格和鲜嫩度.每头奶牛要求它的牧草的鲜嫩度要不低于一个值,价格也不低于一个值.每种牧草只会被一头牛选择.问最少要多少钱? [思路] 显然的贪心,把奶牛和 ...
- pat 素数对猜想
让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数.显然有d1=1,且对于n>1有dn是偶数.“素数对猜想”认为“存在无穷多对相邻且差为2的素 ...
- 2015 UESTC 搜索专题B题 邱老师降临小行星 记忆化搜索
邱老师降临小行星 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/show/61 Des ...
- 配置nginx虚拟目录配置文件支持tp的pathinfo
lnmp自带的包不好用, 经测试,在相应的conf文件加入这句话即可: location / { if (!-e $request_filename) { rewrite ^(.*)$ /index. ...
- Raspberry pi,一个好玩的派:第八季 Raspbmc(下)
上一季安装好Raspbmc就等着这一季好好玩耍呢. 我们要在这一季中完毕例如以下任务:调整分辨率.连接wifi并在无线路由器中设置固定IP.手机遥控Raspbmc.改变语言为中文.远程訪问Raspbe ...
- windows系统上安装与使用Android NDK r8d(二)
四. 在eclipse中集成c/c++开发环境 1. 装Eclipse的C/C++环境插件:CDT,这里选择在线安装. 首先登录http://www.eclipse.or ...
- U-Boot中的filesize环境变量
U-Boot中的环境命令可以使用$(filesize)来确定刚下载(传输)得到的文件大小. 因为使用类似tftp命令传输文件后,会自动更新filesize环境变量.如:setenv updateroo ...
- 如何利用Flink实现超大规模用户行为分析
如何利用Flink实现超大规模用户行为分析 各位晚上好,首先感谢大家参与我的这次主题分享,同时也感谢 InfoQ AI 前线组织这次瀚思科技主题月! 瀚思科技成立于 2014 年,按行业划分我们是 ...