当前位置: 首页 > news >正文

贵阳网站制作公司个人主页html源码

贵阳网站制作公司,个人主页html源码,做网站模板在哪儿找,淘宝官网网页版登录入口最近也在接触SOCKET编程#xff0c;在当今这样一个网络时代#xff0c;很多技术都以网络为中心在诞生#xff0c;至少我认为是这样的#xff0c;而SOCKET套接字接口#xff0c;在实现网络通讯上处于关键地位#xff0c;所以不会SOCKET是不行的。首先#xff0c;本文主要…最近也在接触SOCKET编程在当今这样一个网络时代很多技术都以网络为中心在诞生至少我认为是这样的而SOCKET套接字接口在实现网络通讯上处于关键地位所以不会SOCKET是不行的。首先本文主要是针对那些刚接触SOCKET编程的朋友如果是高手就可以不看此文啦可以去陪陪老婆比如逛街或看电视...在开始之前我们需要预习一些基础知识什么是SOCKET套接字SOCKET通常有那几种数据格式线程的概念以上基本知识我就不讲了网上这方面资料很多的大家找资料看下吧我要介绍的是一个服务器端客户端的聊天系统程序比较简单我先把程序运行的界面给大家看下上面是服务器端运行界面下面把客户端界面贴给大家看下功能比较简单服务器的端口号可以在“系统菜单”里面的参数配置进行修改的。看了上面的图下面我们就给大家把代码贴出来因为程序比较简单所以本人就没有去分层啦服务器端代码 1 usingSystem;2 usingSystem.Collections.Generic;3 usingSystem.ComponentModel;4 usingSystem.Data;5 usingSystem.Drawing;6 usingSystem.Text;7 usingSystem.Windows.Forms;8 9 usingSystem.Net;10 usingSystem.Net.Sockets;11 usingSystem.Threading;12 usingSystem.Xml;13 14 namespaceServer15 {16 publicpartial classServerMain : Form17 {18 publicServerMain()19 {20 InitializeComponent();21 }22 23 privatevoidServerMain_Load(objectsender, EventArgs e)24 {25 this.CmdStar.Enabled true;26 this.CmdStop.Enabled false;27 }28 29 privatevoid配置参数ToolStripMenuItem_Click(objectsender, EventArgs e)30 {31 Set TSet newSet();32 TSet.ShowDialog();33 }34 35 privatevoid关于ToolStripMenuItem_Click(objectsender, EventArgs e)36 {37 About TAbout newAbout();38 TAbout.Show();39 }40 ///summary41 ///获得XML文件中的端口号42 ////summary43 ///returns/returns44 privateintGetPort()45 {46 try47 {48 XmlDocument TDoc newXmlDocument();49 TDoc.Load(Settings.xml);50 stringTPort TDoc.GetElementsByTagName(ServerPort)[0].InnerXml;51 returnConvert.ToInt32(TPort);52 53 }54 catch{ return6600; }//默认是660055 }56 57 //声明将要用到的类58 privateIPEndPoint ServerInfo;//存放服务器的IP和端口信息59 privateSocket ServerSocket;//服务端运行的SOCKET60 privateThread ServerThread;//服务端运行的线程61 privateSocket[] ClientSocket;//为客户端建立的SOCKET连接62 privateintClientNumb;//存放客户端数量63 privatebyte[] MsgBuffer;//存放消息数据64 65 privatevoidCmdStar_Click(objectsender, EventArgs e)66 {67 ServerSocket newSocket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);68 ServerInfonewIPEndPoint(IPAddress.Any,this.GetPort());69 ServerSocket.Bind(ServerInfo);//将SOCKET接口和IP端口绑定70 ServerSocket.Listen(10);//开始监听并且挂起数为1071 72 ClientSocket newSocket[65535];//为客户端提供连接个数73 MsgBuffer newbyte[65535];//消息数据大小74 ClientNumb 0;//数量从0开始统计75 76 ServerThread newThread(RecieveAccept);//将接受客户端连接的方法委托给线程77 ServerThread.Start();//线程开始运行78 79 CheckForIllegalCrossThreadCalls false;//不捕获对错误线程的调用80 81 this.CmdStar.Enabled false;82 this.CmdStop.Enabled true;83 this.StateMsg.Text 服务正在运行运行端口this.GetPort().ToString();84 this.ClientList.Items.Add(服务于 DateTime.Now.ToString() 开始运行.);85 }86 87 //接受客户端连接的方法88 privatevoidRecieveAccept()89 {90 while(true)91 {92 ClientSocket[ClientNumb] ServerSocket.Accept();93 ClientSocket[ClientNumb].BeginReceive(MsgBuffer, 0, MsgBuffer.Length, 0, newAsyncCallback(RecieveCallBack),ClientSocket[ClientNumb]);94 this.ClientList.Items.Add(ClientSocket[ClientNumb].RemoteEndPoint.ToString()成功连接服务器.);95 ClientNumb;96 }97 }98 99 //回发数据给客户端100 privatevoidRecieveCallBack(IAsyncResult AR)101 {102 try103 {104 Socket RSocket (Socket)AR.AsyncState;105 intREnd RSocket.EndReceive(AR);106 for(inti 0; i ClientNumb; i)107 {108 if(ClientSocket[i].Connected)109 {110 ClientSocket[i].Send(MsgBuffer, 0, REnd,0);111 }112 RSocket.BeginReceive(MsgBuffer, 0, MsgBuffer.Length, 0, newAsyncCallback(RecieveCallBack), RSocket);113 114 }115 }116 catch{ }117 118 }119 120 privatevoidCmdStop_Click(objectsender, EventArgs e)121 {122 ServerThread.Abort();//线程终止123 ServerSocket.Close();//关闭SOCKET124 125 this.CmdStar.Enabled true;126 this.CmdStop.Enabled false;127 this.StateMsg.Text 等待运行;128 this.ClientList.Items.Add(服务于 DateTime.Now.ToString() 停止运行.);129 }130 131 132 133 }134 } 客户端代码 1 usingSystem;2 usingSystem.Collections.Generic;3 usingSystem.ComponentModel;4 usingSystem.Data;5 usingSystem.Drawing;6 usingSystem.Text;7 usingSystem.Windows.Forms;8 9 usingSystem.Net;10 usingSystem.Net.Sockets;11 12 namespaceClient13 {14 publicpartial classClientMain : Form15 {16 publicClientMain()17 {18 InitializeComponent();19 }20 21 privateIPEndPoint ServerInfo;22 privateSocket ClientSocket;23 privateByte[] MsgBuffer;24 privateByte[] MsgSend;25 26 privatevoidClientMain_Load(objectsender, EventArgs e)27 {28 this.CmdSend.Enabled false;29 this.CmdExit.Enabled false;30 31 ClientSocket newSocket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);32 MsgBuffer newByte[65535];33 MsgSend newByte[65535];34 CheckForIllegalCrossThreadCalls false;35 36 Random TRandnewRandom();37 this.UserName.Text 用户TRand.Next(10000).ToString();38 }39 40 privatevoidCmdEnter_Click(objectsender, EventArgs e)41 {42 ServerInfo newIPEndPoint(IPAddress.Parse(this.ServerIP.Text), Convert.ToInt32(this.ServerPort.Text));43 44 try45 {46 ClientSocket.Connect(ServerInfo);47 48 ClientSocket.Send(Encoding.Unicode.GetBytes(用户 this.UserName.Text 进入系统\n));49 50 ClientSocket.BeginReceive(MsgBuffer, 0, MsgBuffer.Length, 0, newAsyncCallback(ReceiveCallBack), null);51 52 this.SysMsg.Text 登录服务器成功\n;53 this.CmdSend.Enabled true;54 this.CmdEnter.Enabled false;55 this.CmdExit.Enabled true;56 }57 catch58 {59 MessageBox.Show(登录服务器失败请确认服务器是否正常工作);60 }61 }62 63 privatevoidReceiveCallBack(IAsyncResult AR)64 {65 try66 {67 intREnd ClientSocket.EndReceive(AR);68 this.RecieveMsg.AppendText(Encoding.Unicode.GetString(MsgBuffer, 0, REnd));69 ClientSocket.BeginReceive(MsgBuffer, 0, MsgBuffer.Length, 0, newAsyncCallback(ReceiveCallBack), null);70 71 }72 catch73 {74 MessageBox.Show(已经与服务器断开连接);75 this.Close();76 }77 78 }79 80 privatevoidCmdSend_Click(objectsender, EventArgs e)81 {82 MsgSend Encoding.Unicode.GetBytes(this.UserName.Text 说\nthis.SendMsg.Text \n);83 if(ClientSocket.Connected)84 {85 ClientSocket.Send(MsgSend);86 this.SendMsg.Text ;87 }88 else89 {90 MessageBox.Show(当前与服务器断开连接无法发送信息);91 }92 }93 94 privatevoidCmdExit_Click(objectsender, EventArgs e)95 {96 if(ClientSocket.Connected)97 {98 ClientSocket.Send(Encoding.Unicode.GetBytes(this.UserName.Text 离开了房间\n));99 ClientSocket.Shutdown(SocketShutdown.Both);100 ClientSocket.Disconnect(false);101 }102 ClientSocket.Close();103 104 this.CmdSend.Enabled false;105 this.CmdEnter.Enabled true;106 this.CmdExit.Enabled false;107 }108 109 privatevoidRecieveMsg_TextChanged(objectsender, EventArgs e)110 {111 this.RecieveMsg.ScrollToCaret();112 }113 114 privatevoidSendMsg_KeyDown(objectsender, KeyEventArgs e)115 {116 if(e.Control e.KeyValue 13)117 {118 e.Handled true;119 this.CmdSend_Click(this, null);120 }121 }122 123 124 125 126 }127 } 我只对服务器端的代码做了注释客户端就没有写注释了因为代码是差不多的。区别在于客户端不需要监听也不需要启用线程进行委托。关于 ServerSocket  new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);这句代码我想给初学者解释一下这里“AddressFamily.InterNetwork”表示的是使用IPV4地址“SocketType.Stream”表示使用的是流格式另外还有数据包格式和原始套接字格式“ProtocolType.Tcp”表示使用TCP协议另外还有很多其它协议例如大家常看到的UDP协议。另外关于SOCKET类中的BeginReceive方法请大家参考MSDN里面有详细说明。希望本人给的这个程序可以起到一个抛砖引玉的作用。备注 //2007-12-01//今天有朋友加我QQ问我有关服务端“Settings.xml”文件的内容部分我现在把内容贴出来其实很简单就是方便服务端修改端口的。?xml version1.0 encodingutf-8 ?Server  ServerPort6600/ServerPort/Server 完整的源码我已经放在CSDN上面共享了地址http://download.csdn.net/user/lixyvip转载于:https://www.cnblogs.com/haiyabtx/archive/2012/07/31/2616246.html
http://www.zqtcl.cn/news/922617/

相关文章:

  • 无锡门户网站制作服务郑州艾特网站建设
  • 建设网站 万网网页设计表单代码模板
  • 网站速度查询app开发模板网站
  • 国外案例网站做电商网站有什么用
  • 自己做的网站点击赚钱免费制作二级网站
  • 产品包装设计网站网站开发所需费用
  • 新手学做百度联盟网站html水平导航栏怎么做
  • 单页网站排名seo营销软件
  • 网站建设项目报告书广州品牌网站设计价格
  • 阜阳市建设工程网站wordpress三栏博客主题
  • 邢台学校网站建设制作游戏需要多少钱
  • 品牌做网站网上接外包项目
  • 购物网站设计图百安居装修报价清单
  • 做网站要提供什么莱芜综合频道莱芜新闻
  • 网站怎么做前后台存取马鞍山市网站建设公司
  • 北京西站到北京南站软件定制外包公司
  • 网站开发手机端游戏网站设计风格有哪些
  • 网站建设开发感想网站建设公司接单
  • 建立网站后怎样收费吗设计图纸网站
  • asp网站密码从零开始做一个网站需要多少钱
  • 网站建设中需求分析报告微信 网站 优劣势
  • 湖南建设长沙网站建设价格关于网站的建设论文
  • 玉林网站制作网站建设的常用词
  • linux系统网站空间用凡科做网站的费用
  • 如何给别人做网站百度推广助手app
  • 哈市哪里网站做的好新颖的网站策划
  • 网站建设 方案书微信登录wordpress免费
  • 兰州网站建设企业名录洛可可设计公司估值
  • 广州做网站地方兰州做网站的公司有哪些
  • 招标网站哪个好适合学生做网站的图片