Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 内六角螺纹_C#_Node.js_Multithreading_Sockets - Fatal编程技术网

C# 内六角螺纹

C# 内六角螺纹,c#,node.js,multithreading,sockets,C#,Node.js,Multithreading,Sockets,正在尝试通过c#winform连接套接字。我不知道这个代码是否正常工作。如果没有,我想处理带有线程的套接字。请求帮助 有一条消息表明客户端和服务器已连接,但它们彼此不接收数据。我不知道是什么问题 private void Login_box_Click(object sender, EventArgs e) { string email = textBox1.Text; string pw = textBox2.Text;

正在尝试通过c#winform连接套接字。我不知道这个代码是否正常工作。如果没有,我想处理带有线程的套接字。请求帮助

有一条消息表明客户端和服务器已连接,但它们彼此不接收数据。我不知道是什么问题

private void Login_box_Click(object sender, EventArgs e)
        {
            string email = textBox1.Text;
            string pw = textBox2.Text;

            Thread thread = new Thread(new ThreadStart(delegate ()
            {
                this.Invoke(new Action(() => socketLogin(email, pw)));
                Thread.Sleep(1000);
            }));

            thread.Start();
}
 

server node.js

io.on('connection', function(socket) {
    console.log('connection');
    socket.on('socketlogin', function(data) {  

        var testLogin = { 'Login': "success" };

        socket.emit('login', data);
    });
  });

我会做如下的事情:

private void登录框\u单击(对象发送者,事件参数e)
{
字符串email=textBox1.Text;
字符串pw=textBox2.Text;
QueueUserWorkItem(socketLogin,新元组(email,pw));
}
私有void socketLogin(对象对象对象)
{
字符串email=((元组)obj).Item1;
字符串pw=((元组)obj);
var loginjson=new JObject();
添加(“电子邮件”,电子邮件);
添加(“密码”,pw);
变量套接字=IO.socket(“http://localhost:3000/login.html");
socket.On(socket.EVENT_CONNECT,(数据)=>
{
Emit(“socketlogin”,loginjson.ToString());
});
socket.On(“登录”,“数据)=>{
Show(data.ToString());
});
}

希望这有帮助

1)生成一个显式线程(通过
Invoke
xxx)将线程封送回UI没有任何作用2)如果必须调用,则使用
BeginInvoke
,因为
Invoke
可能导致应用程序死锁3)
Sleep
在线程结束时进行封送没有任何作用。考虑使用<代码>异步/等待< /代码>等价的谢谢。但我不知道如何改变它。“我能再请求一点帮助吗?”Jaeboom33-等待任务,年轻的学徒。
io.on('connection', function(socket) {
    console.log('connection');
    socket.on('socketlogin', function(data) {  

        var testLogin = { 'Login': "success" };

        socket.emit('login', data);
    });
  });