最终实现的效果:
项目大体结构
服务端:
设计思路:
1、创建一个监听连接的serverSocket对象
2.用指定的端口号和服务器的ip建立一个EndPoint对像;
3.将EndPoint对象绑定到serverSocket对象上
4.用serverSocket.Listen()方法开始监听
5.接收到客户端的连接,用serverSocket.Accpet方法创建一个新的socket对像用于和客户端进行通信的;
6.:通信结束后一定先关闭socket;监听线程关闭,接受信息线程关闭
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace MyServer
{
public partial class Server : Form
{
//定义Socket对象
Socket serverSocket;
//定义监听线程
Thread listenThread;
//定义接受客户端数据线程
Thread threadReceive;
//定义双方通信
Socket socket;
String str;
public Server()
{
InitializeComponent();
}
//开始监听按钮
private void buttonServer_Click(object sender, EventArgs e)
{
IPAddress ip = IPAddress.Parse(this.textIp.Text.Trim());
serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
try
{
//绑定IP和端口
serverSocket.Bind(new IPEndPoint(ip, Convert.ToInt32(this.textPortBox.Text.Trim