翻译一篇简单的文章学习下基础,此文针对我等对socket只听说未尝试阶段的水平。

How to C# Socket programming

C#通过他的命名空间像System.Net和System.Net.Sockets简化网络编程。套接字是指运行在同一个网络中的两个程序之间(服务端程序和客户端程序)进行来回通信(双向的)线路的终端节点。在C#里要用套接字应用通信我们需要有两个应用程序。一个服务端程序(server)和一个客户端程序(client)。

C#服务端套接字程序:C#服务端套接字程序运行在一台有绑定端口号并监听客户端请求的电脑上。
C#客户端套接字程序:C#客户端套接字程序必须得知道运行服务端套接字程序电脑的ip地址(或主机名)和指定监听客户端请求
的端口号。
一旦服务端和客户端的连接建立,他们便可以通过他们的套接字进行通信(读和写)。

在C#里用来套接字编程的通信协议有两种类型,他们分别是TCP/IP(传输控制协议/网际协议)通信,UDP/IP(用户数据报文协议/网际协议)通信。
在接下来的部分我们将在服务端套接字程序和客户端套接字程序之间使用tcp/ip通信协议进行通信。


以上图片展示了服务端和客户端进行通信的界面。
C#服务端套接字程序:服务端套接字程序通过C#控制台程序运行。这里的服务端监听着客户端的请求,并且当C#服务端获得客户端套接字的请求时,服务端向客户端发出一个响应。点击下面的链接查看服务端套接字程序的详细信息。

C#客户端套接字程序:C#客户端套接字程序是一个窗体程序。当客户端程序执行时,他将建立到服务端程序的链接并向服务端发出请求,同时他也接受来自服务端的响应。点击下面的链接查看客户端套接字编程的详细信息。

如何运行该程序?
这个C#套接字程序有两部分组成。
1、服务端套接字程序
2、客户端套接字程序
当你完成编码并生成服务端和客户端程序后,首先你必须从命令提示符中启动C#服务套接字程序,然后在你的服务程序正在运行的地方也就是DOS窗口里你将获得一个服务已启动的消息。
下一步就是在同一个网络里的同一台台电脑或其他的电脑上启动客户端套接字程序。当你启动客户端套接字程序时,他会建立到服务端的链接并在客户端窗口里显示客户端已启动的消息。同时你会在服务端的窗口里看到,已经接受来自客户端的链接的消息。

现在你的服务端套接字程序和客户端套接字程序已经建立连接并可以通信了。如果你想使服务端和客户端再次进行通信,点击客户端程序的按钮,然后你会看到新的消息显示在服务端和客户端的程序里。

入门级:怎么使用C#进行套接字编程(二)

入门级:怎么使用C#进行套接字编程(一)的更多相关文章

  1. 入门级:怎么使用C#进行套接字编程(二)

    入门级:怎么使用C#进行套接字编程(一) 原文地址如下: C# Server Socket program C# Client Socket program 代码环境:VS2010+Win8.1企业评 ...

  2. Linux Socket 原始套接字编程

    对于linux网络编程来说,可以简单的分为标准套接字编程和原始套接字编程,标准套接字主要就是应用层数据的传输,原始套接字则是可以获得不止是应用层的其他层不同协议的数据.与标准套接字相区别的主要是要开发 ...

  3. C++网络套接字编程TCP和UDP实例

    原文地址:C++网络套接字编程TCP和UDP实例作者:xiaojiangjiang 1.       创建一个简单的SOCKET编程流程如下 面向有连接的套接字编程 服务器: 1)  创建套接字(so ...

  4. Python黑帽编程2.8 套接字编程

    Python黑帽编程2.8 套接字编程 套接字编程在本系列教程中地位并不是很突出,但是我们观察网络应用,绝大多数都是基于Socket来做的,哪怕是绝大多数的木马程序也是如此.官方关于socket编程的 ...

  5. 探索UDP套接字编程

    UDP和TCP处于同一层网络模型中,也就是运输层,基于二者之上的应用有很多,常见的基于TCP的有HTTP.Telnet等,基于UDP有DNS.NFS.SNMP等.UDP是无连接,不可靠的数据协议服务, ...

  6. 【Python网络编程】利用Python进行TCP、UDP套接字编程

    之前实现了Java版本的TCP和UDP套接字编程的例子,于是决定结合Python的学习做一个Python版本的套接字编程实验. 流程如下: 1.一台客户机从其标准输入(键盘)读入一行字符,并通过其套接 ...

  7. 基本套接字编程(7) -- udp篇

    1. UDP概述         UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互 ...

  8. 初探网络编程--TCP套接字编程演示

    今天看了一下<计算机网络:自顶向下方法>,也就是计算机网络的教材的应用层一章,决定实现以下后面的Java C/S应用程序的例子,用来演示TCP和UDP套接字编程. 程序流程如下: 1.一台 ...

  9. linux网络环境下socket套接字编程(UDP文件传输)

    今天我们来介绍一下在linux网络环境下使用socket套接字实现两个进程下文件的上传,下载,和退出操作! 在socket套接字编程中,我们当然可以基于TCP的传输协议来进行传输,但是在文件的传输中, ...

随机推荐

  1. 【EF学习笔记11】----------查询中常用的扩展方法

    先来看一下我们的表结构: 首先毫无疑问的要创建我们的上下文对象: using (var db = new Entities()) { //执行操作 } Average 平均值: //查询平均分 Con ...

  2. weed-fs 基础测试

    =================== 启动 master 端口:9333 =================== sunsl@test-server:~$ weed master I0102 15: ...

  3. QuerySet转化为JSON

    import json data = json.dumps(list(my_table.objects.all().values())) return HttpResponse(data)

  4. 进阶篇:以IL为剑,直指async/await

    接上篇:30分钟?不需要,轻松读懂IL,这篇主要从IL入手来理解async/await的工作原理. 先简单介绍下async/await,这是.net 4.5引入的语法糖,配合Task使用可以非常优雅的 ...

  5. Scala class的构造方法与继承

    有java背景的人,很清楚java是如何定义构造方法以及继承的.在scala里面,继承和java有些相似.但是构造方法的定义,就不大一样了,应该说是差别还是很大的.在java里面,定义构造方法,就是定 ...

  6. 第三方控件radupload 使用方式以及报错处理

    使用方式: 1.web.config  中需要加入: <httpHandlers>    <add verb="*" path="Telerik.Rad ...

  7. 使用Innosetup制作安装包的一些技巧

    1. 选择安装界面上的图片 [Setup] ;设置界面上的两个图片 WizardImageFile=WizModernImage.bmp WizardSmallImageFile=WizSmallIm ...

  8. Ubuntu下shell脚本运行异常:bash和dash的区别

    Ubuntu下我用bash到语法写了一个shell脚本(准确的说是把书上的脚本敲进电脑),在ubuntu下,用sh test.sh来运行,但是出现了意料之外到结果,比如echo -e "\n ...

  9. MapGIS6.7安装图文教程(完美破解)

    mapgis安装比较简单,主要注意在安装的时候,先打开软件狗,然后再进行软件安装,一般就不会照成其他安装失败的现象,有时候安装之前没有打开软件狗也安装成功了,也有这情况,不过软件使用也需要软件狗的支持 ...

  10. CoreData创建

    云盘-->CoreData文件 一 创建表打开点击增加的Entity名字应该与 EntityForName一致   二 创建NSManageObject SubClass   三 拖进CoreD ...