欢迎来到天天文库
浏览记录
ID:40575801
大小:89.50 KB
页数:6页
时间:2019-08-04
《socket网络对话》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Socket实现网络对话实验班级:姓名:学号:一.实验目的:(1)了解socket网络编程技术;(2)掌握socket聊天程序的结构和工作原理;(3)掌握局域网消息传递的机制;(4)利用C#编写局域网聊天程序。二.实验描述:通过C#编程实现局域网内的一个聊天系统,客户端连接服务器,支持客户与服务器之间的消息传递。三.运行环境:(1)系统环境:一个局域网、WindowsXP/Window7。(2)软件环境:VS2008编程软件。四.功能分析:为实现网络聊天的功能,采用WindowsSocket编程,服务器与客户端采用了TCP/IP连接方式,在设计聊天方案时,实行将所有
2、信息发往服务器端,再由服务器进行分别处理的思路,服务器端是所有信息的中心。通过C#编程socket软件,这个网络对话软件可以实现一个服务器与一个客户端进行网络连接和对话!利用socket原理建立连接,由客户端像服务器发送信息,进行通话。四.软件设计和主要代码:(1)客户端:客户端界面截图:首先打开服务器,得到服务器的IP地址和端口号,再进行连接。 连接代码:Socketnewsock;privatevoidbutton1_Click(objectsender,EventArgse){ byte[]date=newbyte[1024];newsock=newSock
3、et(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);stringip=comboBox1.Text;intport=Convert.ToInt32(textBox3.Text);IPEndPointIE=newIPEndPoint(IPAddress.Parse(ip),port);try{newsock.Connect(IE);}catch(SocketExceptionE){MessageBox.Show("不能与服务器连接");MessageBox.Show(E.ToString(
4、));return;}MessageBox.Show("已连接");}如果连接成功,就会弹出MessageBox显示“已连接”。现在就可以进行对话了,发送内容给服务器了。发送代码:privatevoidbutton2_Click(objectsender,EventArgse){stringnews=textBox2.Text.Trim();newsock.Send(Encoding.ASCII.GetBytes(news)); newsock.Shutdown(SocketShutdown.Both); newsock.Close();}(2)服务器:服务器界
5、面截图:服务器代码:namespaceConsoleApplication1{classProgram{staticvoidMain(string[]args){intre;//信息长度byte[]data=newbyte[1024];IPEndPointip=newIPEndPoint(IPAddress.Any,8000);Socketnewsock=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);newsock.Bind(ip);//绑定newsock.Liste
6、n(10);//监听Console.WriteLine("等待接收数据:");Socketclient=newsock.Accept();IPEndPointclientip=(IPEndPoint)client.RemoteEndPoint;Console.WriteLine("发送端IP:"+clientip.Address+"发送端口:"+clientip.Port);while(true){data=newbyte[1024];re=client.Receive(data);if(re==0)//当信息长度为0,说明客户端断开break;Console.Wr
7、iteLine(Encoding.ASCII.GetString(data,0,re));}client.Close();newsock.Close();Console.ReadLine();}}}如果连接成功,客户端会发送其IP地址和端口号给服务器。服务器接受到的客户端发送的内容。六.实验体会:(1).对socket编程有了一定程度的了解,掌握套接字的创建,了解局域网消息传递机制。(2).对利用C#实现局域网聊天程序有了进一步的了解。
此文档下载收益归作者所有