110,535
社区成员
发帖
与我相关
我的任务
分享
namespace diancai
{
public class GlobleVariable
{
public static Socket s;
public static IPEndPoint ipe;
public static List<Socket> arrSocket;
}
}
namespace diancai
{
public partial class MainWindow : Form
{
public MainWindow()
{
InitializeComponent();
Text = GlobleVariable.sWindowTitle;
}
private void MainWindow_Load(object sender, EventArgs e)
{
GlobleVariable.arrSocket = new List<Socket>();//初始化容器
}
}
}
private void btn_point_Click(object sender, EventArgs e)//单击按钮
{
Thread ListenSocket = new Thread(new ThreadStart(fnListenSocket));
ListenSocket.Start();
}
protected void fnListenSocket()
{
GlobleVariable.ipe = new IPEndPoint(IPAddress.Parse(textBox1.Text), Convert.ToInt32(textBox2.Text));
GlobleVariable.s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//创建一个socket对像,如果用udp协议,则要用SocketType.Dgram类型的套接字
GlobleVariable.s.Bind(GlobleVariable.ipe);//绑定EndPoint对像(8889端口和ip地址)
GlobleVariable.s.Listen(0);//开始监听
while(true)
{
Socket temp = GlobleVariable.s.Accept();
lock (GlobleVariable.arrSocket)
{
GlobleVariable.arrSocket.Add(temp);
}
}
}
是的,没有问题,但但代码量大了就不适合lock了