学习一个新的东西,首先要知道其原理,对于Sockets的学习,可先看一下文档:http://blog.csdn.net/hulihui/article/details/3230503#st 点击打开链接
PS: /*附有源码*/
刚开始是写代码实现了一个客户端和服务器的通讯,后来完善代码,实现了多个客户端与服务器端的通讯,由于原理是差不多的,这里就直接介绍多个客户端与服务器进行通讯。
第一部分 窗体设计
1.服务器端
2.客户端
第二部分 代码
1.服务器端:
– 申请一个socket (socketWatch)用来监听的
– 绑定到一个IP地址和一个端口上
– 开启侦听,等待接授客户端的连接
– 当有连接时创建一个用于和连接进来的客户端进行通信的socket(socketConnection)
– 即续监听,等侍下一个客户的连接
//服务器端
using System.IO;
using System.Net;
using System.Threading;
using System.Net.Sockets;
namespace SocketsServer
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Socket socketWatch = null;
Thread threadWatch = null;
private void startconn_Click(object sender, EventArgs e)
{
socketWatch = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPAddress ipaddress = IPAddress.Parse(localip.Text.Trim());
IPEndPoint endpoint = new IPEndPoint(ipaddress, int.Parse(porttext.Text.Trim()));
socketWatch.Bind(endpoint);
socketWatch.Listen(10);
threadWatch = new Thread(WatchingConn);
threadWatch.IsBackground = true;