入门级:怎么使用C#进行套接字编程(一)
翻译一篇简单的文章学习下基础,此文针对我等对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#进行套接字编程(二)
入门级:怎么使用C#进行套接字编程(一) 原文地址如下: C# Server Socket program C# Client Socket program 代码环境:VS2010+Win8.1企业评 ...
- Linux Socket 原始套接字编程
对于linux网络编程来说,可以简单的分为标准套接字编程和原始套接字编程,标准套接字主要就是应用层数据的传输,原始套接字则是可以获得不止是应用层的其他层不同协议的数据.与标准套接字相区别的主要是要开发 ...
- C++网络套接字编程TCP和UDP实例
原文地址:C++网络套接字编程TCP和UDP实例作者:xiaojiangjiang 1. 创建一个简单的SOCKET编程流程如下 面向有连接的套接字编程 服务器: 1) 创建套接字(so ...
- Python黑帽编程2.8 套接字编程
Python黑帽编程2.8 套接字编程 套接字编程在本系列教程中地位并不是很突出,但是我们观察网络应用,绝大多数都是基于Socket来做的,哪怕是绝大多数的木马程序也是如此.官方关于socket编程的 ...
- 探索UDP套接字编程
UDP和TCP处于同一层网络模型中,也就是运输层,基于二者之上的应用有很多,常见的基于TCP的有HTTP.Telnet等,基于UDP有DNS.NFS.SNMP等.UDP是无连接,不可靠的数据协议服务, ...
- 【Python网络编程】利用Python进行TCP、UDP套接字编程
之前实现了Java版本的TCP和UDP套接字编程的例子,于是决定结合Python的学习做一个Python版本的套接字编程实验. 流程如下: 1.一台客户机从其标准输入(键盘)读入一行字符,并通过其套接 ...
- 基本套接字编程(7) -- udp篇
1. UDP概述 UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互 ...
- 初探网络编程--TCP套接字编程演示
今天看了一下<计算机网络:自顶向下方法>,也就是计算机网络的教材的应用层一章,决定实现以下后面的Java C/S应用程序的例子,用来演示TCP和UDP套接字编程. 程序流程如下: 1.一台 ...
- linux网络环境下socket套接字编程(UDP文件传输)
今天我们来介绍一下在linux网络环境下使用socket套接字实现两个进程下文件的上传,下载,和退出操作! 在socket套接字编程中,我们当然可以基于TCP的传输协议来进行传输,但是在文件的传输中, ...
随机推荐
- The Magic only works with total devotion of one's heart
The Magic only works with total devotion of one's heart All tools and equipments are useless without ...
- Dig out deleted chat messages of App Skype
Last month Candy was arrested on suspicion of having doing online porn webcam shows, but Candy refus ...
- ASP.NET中调用存储过程方法
两种不同的存储过程调用方法 为了突出新方法的优点,首先介绍一下在.NET中调用存储过程的“官方”方法.另外,本文的所有示例程序均工作于SqlServer数据库上,其它情况类似,以后不再一一说明.本文所 ...
- DescriptionResourcePathLocationType Dynamic Web Module 3.0 requires Java
先保证ide的所有jdk都在1.6及以上,如果还是错就试试下面的 在<build></build>中添加 <plugins> <plugin> < ...
- HIVE 启动出错总结
1: [centos@centos4- bin]$ hive /home/centos/app/apache-hive--bin/bin/hive: line : /tmp/centos/stderr ...
- PHP 程序员的技术成长规划
[导读] 按照了解的很多PHP LNMP程序员的发展轨迹,结合个人经验体会,抽象出很多程序员对未来的迷漫,特别对技术学习的盲目和慌乱,简单梳理了这个每个阶段PHP程序员的技术要求,来帮助很多PHP程序 ...
- {CSDN}{英雄会}{火车调度}
思路: 给定一系列时刻表,求能满足各个时刻的最小火车数量. 打眼一看, 把此题归入到最大流,仔细一想不符合流网络的规律,换思路. 由于是一个最优化问题,自然想到动态规划和贪心. 最后确定贪心.从最早出 ...
- BootLoader 详解(3)
BootLoader的stage2 stage2的代码是C语言来实现的,以便于实现更复杂的功能和取得更好的代码可读性和移植性.它与普通C语言程序不同的是,在编译和链接BootLoader这样的程序时, ...
- python 操作exls学习之路1-openpyxl库学习
这篇要讲到的就是如何利用Python与openpyxl结合来处理xlsx表格数据.Python处理表格的库有很多,这里的openpyxl就是其中之一,但是它是处理excel2007/2010的格式,也 ...
- [python] import curses
python 中,我们使用 curses.wrapper 来创建终端交互window.使用 stdscr 来代表 window 对象. 使用方法: from curses import wrapper ...