欢迎来到天天文库
浏览记录
ID:59071130
大小:66.63 KB
页数:2页
时间:2020-10-29
《基于socket类服务器编程.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、1)启动VS.NET集成开发环境;2)选择“文件”菜单下“新建”选项,在模版栏中选择“控制台应用程序”;3)按下面流程设计程序;(1)处理多人连接的情况:在C#中,一般使用多线程来处理多人连接。服务器端收到客户端的请求时,用Socket类的Accept方法建立和客户端连接的Socket对象。代码示例如下:while(true){try{socketClient=socketServer.Accept( );…//使线程和每一个HTTP客户端连接ThreadThreadClient=newThread(newThreadStart(this.ProcessRequest));Thre
2、adClient.Start( );}catch(Exceptionex){Console.WriteLine(ex.Message.ToString( ));}if(socketClient.Connected)socketClient.close( );}(2)取得Web浏览器的HTTP请求,使用Socket类的Receive方法取得。示例如下:bytes=socketClient.Receive(recvBytes,0,socketClient.Available,SocketFlag.None);htmlReq=Encoding.ASCII.GetString(recvBy
3、tes,0,bytes);(3)定义虚拟目录:程序中指定项目所在目录为网址的主目录。StringrootPath=Directory.GetCurrentDirectory( )+"\wwwRoot\";(4)HTTP方法及请求浏览的资源。Web服务器需要从HTTP标题中取得HTTP方法及其资源。程序示例如下:strArray=htmlReq.Trim( ).Split("".ToCharArray( ));if(strArray[0].Trim( ).ToUpper( ).Equals("GET")){strRequest=strArray[1].Trim( ).ToStri
4、ng( );if(strRequest.StartsWith("/"))strRequest=strRequest.Substring(1);if(strRequest.EndsWith("/")
5、
6、strRequest.Equals(""))strRequest=strRequest+defaultPage;strRequest=rootPath+strRequest;sendHTMLResponse(strRequest);}else{strRequest=rootPath+"Error\"+"400.html";endHTMLResponse(strRequest);}(5
7、)最后,当传输结束时,Web服务器需关闭客户连接。程序示例如下:SocketClient.Shutdown(SocketShutdown.Both);SocketClient.Close( );4)编写代码;5)调试程序。
此文档下载收益归作者所有