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

邮箱:[email protected]

?

?

时间: 2024-10-24 07:13:00

C#应用视频教程1.1 Socket通信基础的相关文章

Socket通信基础(二)

接第一章介绍UDP通信.相较于TCP,UDP是非常轻量级的通信方式.主要运用于游戏.影视.娱乐等场合.这些场合的共同特征就是,对速度要求比较高,但是对正准备性要求,并不是很高.比如视频时,丢掉一个错误帧,并不会观影质量产生太大影响. 这篇主要介绍Android端的UDP通信. 假设接收的IP是192.168.0.50,监听端口是4444(如果是手机的IP可以在设置中的关于手机里面的手机状态里查看到IP信息). 发送部分的代码为: static void sendStringByUDP(final

C#应用视频教程1.3 Socket通信客户端完善

我们先把前面的代码封装成一个完整的类,因为跟网络相关的方法并不一定是建立socket的服务器和客户端,所以还是应该把两个分开,比如获取本机IP,修改本机IP,PING远程主机这些事情应该放在一个单独的类里面,而且里面的方法应该是静态的(一个应用不会需要多个实例来做上面讲的这些事情),所以我个人建议做成一个单独的类FunctionNetwork,这样可以让主程序很简洁 ? 注意可能涉及到IP地址自动获取和手动修改的方法,需要额外的DLL引用(System.Management),这部分功能暂时用不

C#应用视频教程1.2 Socket通信客户端实现

接下来我们尝试实现最简单的Socket客户端,为了确保只可能你的代码有问题,服务器要先用别人成熟的代码测试(这也是编程的一个技巧,先不要用自己写的客户端测试自己写的服务器,这样出了问题你也不知道谁有问题,也可能都有问题,而是一样一样来,拿不准的先用别人的),先开启这个Socket服务器 ? 尝试连接到服务器,只要参照网上的做法,调用Socket的connect方法和disconnect方法即可(把指定的IP地址和端口按照要求转成IPEndPoint类型),可以发现SocketTest软件确实就不

java通信之Socket通信基础

正处于网络环境下的两个程序,它们之间通过一个交互的连接来实现数据通信.每一个连接的通信端叫做一个Socket.一个完整的Socket通信程序应该包含以下几个步骤: ①创建Socket: ②打开连接到Socket的输入输出流: ④按照一定的协议对Socket进行读写操作: ④关闭Socket. Socket通信分两部分:服务器端和客户端.服务器端必须优先启动,然后等待socket连接,如果达成连接则开始执行输入输出操作,通过输入流获取客户端的请求信息,通过 输出流返回客户端信息.客户端则只需创建一

iOS开发人员必看的精品资料(100个)

目录下载地址:http://down.51cto.com/data/416672 附件预览如下: iOS游戏开发之Unity3D引擎系列 http://down.51cto.com/zt/399 iPadian软件:让你在Windows下真实地体验iPad http://down.51cto.com/data/274307 <iPhone开发秘籍(第2版)>中文版电子书 http://down.51cto.com/data/259386 iPhone开发基础教程+源码 pdf http://d

【热门收藏】iOS开发人员必看的精品资料(100个)——下载目录

iPhone.iPad产品风靡全球,巨大的用户群刺激着iOS软件开发需求,然而国内人才缺口很大,正处于供不应求的状态,ios开发前景大好.我们整理了51CTO下载中心100份热门的ios开发资料,做了一个地址收藏目录,方便大家选择性下载.里边均是好资料,相信对学习ios开发有所帮助.目录下载地址:http://down.51cto.com/data/416672 附件预览如下: iOS游戏开发之Unity3D引擎系列 http://down.51cto.com/zt/399 iPadian软件:

HTTP/1.1

HTTP真的很简单 原文:HTTP Made Really Easy因为我本身网络基础就很差,所以看到这篇文章一方面是学习网络知识,另一方面为了锻炼我蹩脚的英语水平,文中如有错误,欢迎浏览指正! 前言 在看这篇文章的时候,推荐使用chrome浏览器查看http请求过程中的相关参数.chrome浏览器,可以通过‘alt+cmd+i’进入开发者模式.进入‘Network’一栏,在‘Name’栏内找到请求的网址.查看Headers一栏,就可以看到‘Response Headers’和‘Request

HTTP真的很简单(转)

原文:HTTP Made Really Easy因为我本身网络基础就很差,所以看到这篇文章一方面是学习网络知识,另一方面为了锻炼我蹩脚的英语水平,文中如有错误,欢迎浏览指正! 前言 在看这篇文章的时候,推荐使用chrome浏览器查看http请求过程中的相关参数.chrome浏览器,可以通过‘alt+cmd+i’进入开发者模式.进入‘Network’一栏,在‘Name’栏内找到请求的网址.查看Headers一栏,就可以看到‘Response Headers’和‘Request Headers’.并

c++ builder xe2 (Embarcadero rad studio) 远程调试 同样适用于 delphi 远程调试 教程

转载:http://www.cnblogs.com/zhangdongsheng/p/3411056.html 每次要远程调试的时候都要看半天的xe2英文帮助文档,今天正好有点时间,把它写下来. 一.概述: 首先说明一下,c++ builder 远程调试有两种方式的,一种是被称为是老式的调试方法,这种方法是在远程机器上安装Debugger 也就是其实也就是运行PAServer的rmtdebug163.exe来运行调试的,但是这种方法貌似只能以启动进程的方式调试程序,而不能附加已经存在的进程.而今