你得学会并且学得会的Socket编程基础知识

2019-02-15 17:22

这一篇文章,我将图文并茂地介绍Socket编程的基础知识,我相信,如果你按照步骤做完实验,一定可以对Socket编程有更好地理解。

第一步:创建解决方案

第二步:创建服务端程序

这里可以选择“Console Application”这个类型,比较方便调试 然后编写如下代码,实现服务器的基本功能

using System;

using System.Collections.Generic; using System.Linq; using System.Text;

//额外导入的两个命名空间 using System.Net.Sockets; using System.Net;

namespace SocketServer {

class Program {

///

/// Socket Server 演示 /// 作者:陈希章 ///

///

//创建一个新的Socket,这里我们使用最常用的基于TCP的Stream Socket(流式套接字)

var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

//将该socket绑定到主机上面的某个端口 //方法参考:

http://msdn.microsoft.com/zh-cn/library/system.net.sockets.socket.bind.aspx

socket.Bind(new IPEndPoint(IPAddress.Any, 4530));

//启动监听,并且设置一个最大的队列长度 //方法参考:

http://msdn.microsoft.com/zh-cn/library/system.net.sockets.socket.listen(v=VS.100).aspx

socket.Listen(4);

Console.WriteLine(\ Console.Read(); } } }

现在可以启动调试一下看看效果如何,正常情况下应该会看到一个提示,因为我们需要在TCP 4530端口进行监听,所以防火墙会有提示。

点击“Allow access”

这样,我们的服务器就可以开始监听了。但是这有什么用呢?是的,没有什么用。 我们还需要为服务器添加一些功能,例如接受传入的请求,给客户端发送消息,或者从客户端接收消息等等

第三步:接受传入的请求

我们需要通过Accept,或者(BeginAccept)来接受传入的请求,请注意下面代码中的红色部分

using System;

using System.Collections.Generic; using System.Linq; using System.Text;

//额外导入的两个命名空间 using System.Net.Sockets; using System.Net;

namespace SocketServer {

class Program {

///

/// Socket Server 演示 /// 作者:陈希章 ///

///

//创建一个新的Socket,这里我们使用最常用的基于TCP的Stream Socket(流式套接字)

var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

//将该socket绑定到主机上面的某个端口 //方法参考:

http://msdn.microsoft.com/zh-cn/library/system.net.sockets.socket.bind.aspx

socket.Bind(new IPEndPoint(IPAddress.Any, 4530));

//启动监听,并且设置一个最大的队列长度 //方法参考:

http://msdn.microsoft.com/zh-cn/library/system.net.sockets.socket.listen(v=VS.100).aspx socket.Listen(4);

//开始接受客户端连接请求

//方法参考:

http://msdn.microsoft.com/zh-cn/library/system.net.sockets.socket.beginaccept.aspx

socket.BeginAccept(new AsyncCallback((ar) => {

//这就是客户端的Socket实例,我们后续可以将其保存起来 var client = socket.EndAccept(ar);

//给客户端发送一个欢迎消息

client.Send(Encoding.Unicode.GetBytes(\I accept you request at \+DateTime.Now.ToString())); }), null);

Console.WriteLine(\); Console.Read(); } } }

wow,看起来不错对吧,我们赶紧做一个客户端来测试一下吧

第四步:创建客户端

我们还是使用一个Console Application 添加如下的代码,并且创建客户端连接

using System;

using System.Collections.Generic; using System.Linq; using System.Text;

//导入的命名空间

using System.Net.Sockets;

namespace SocketClient {

class Program {

///

/// Socket Server 演示


你得学会并且学得会的Socket编程基础知识.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:[初中语文]2011-2012学年度七年级上册第四单元语文测试卷 语文版

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: