博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#版 Winform界面 Socket编程 Client客户端
阅读量:6703 次
发布时间:2019-06-25

本文共 3546 字,大约阅读时间需要 11 分钟。

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;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 _07Client{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        Socket socketSend;        private void btnStart_Click(object sender, EventArgs e)        {            try            {                //创建负责通信的Socket                socketSend = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);                IPAddress ip = IPAddress.Parse(txtServer.Text);                IPEndPoint point = new IPEndPoint(ip, Convert.ToInt32(txtPort.Text));                //获得要连接的远程服务器应用程序的IP地址和端口号                socketSend.Connect(point);                ShowMsg("连接成功");                //开启一个新的线程不停的接收服务端发来的消息                Thread th = new Thread(Recive);                th.IsBackground = true;                th.Start();            }            catch            { }                    }        ///         /// 不停的接受服务器发来的消息        ///         void Recive()        {            while (true)            {                try                {                    byte[] buffer = new byte[1024 * 1024 * 3];                    int r = socketSend.Receive(buffer);                    //实际接收到的有效字节数                    if (r == 0)                    {                        break;                    }                    //表示发送的文字消息                    if (buffer[0] == 0)                    {                        string s = Encoding.UTF8.GetString(buffer, 1, r-1);                        ShowMsg(socketSend.RemoteEndPoint + ":" + s);                    }                    else if (buffer[0] == 1)                    {                        SaveFileDialog sfd = new SaveFileDialog();                        sfd.InitialDirectory = @"C:\Users\SpringRain\Desktop";                        sfd.Title = "请选择要保存的文件";                        sfd.Filter = "所有文件|*.*";                        sfd.ShowDialog(this);                        string path = sfd.FileName;                        using (FileStream fsWrite = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write))                        {                            fsWrite.Write(buffer, 1, r - 1);                        }                        MessageBox.Show("保存成功");                    }                    else if (buffer[0] == 2)                    {                        ZD();                    }                                }                catch { }            }        }        ///         /// 震动        ///         void ZD()        {            for (int i = 0; i < 500; i++)            {                this.Location = new Point(200, 200);                this.Location = new Point(280, 280);            }        }        void ShowMsg(string str)        {            txtLog.AppendText(str + "\r\n");        }        ///         /// 客户端给服务器发送消息        ///         ///         ///         private void btnSend_Click(object sender, EventArgs e)        {            string str = txtMsg.Text.Trim();            byte[] buffer = System.Text.Encoding.UTF8.GetBytes(str);            socketSend.Send(buffer);        }        private void Form1_Load(object sender, EventArgs e)        {            Control.CheckForIllegalCrossThreadCalls = false;        }    }}

 

转载于:https://www.cnblogs.com/blacop/p/5979712.html

你可能感兴趣的文章
Python--day48--ORM框架SQLAlchemy操作表
查看>>
[转] 一文弄懂神经网络中的反向传播法——BackPropagation
查看>>
jQuery---过滤选择器
查看>>
VS2017 启动调试报错无法启动程序 当前状态中非法
查看>>
DevExpress Chart空间Y轴归一化(线性归一化函数)
查看>>
【Foreign】采蘑菇 [点分治]
查看>>
运用java 多线程模拟火车售票。。。。
查看>>
iOS开发之普通网络异步请求与文件下载方法
查看>>
添加文字和水印
查看>>
LUA ipairs遍历的问题
查看>>
字符驱动之按键(四:poll机制)
查看>>
现在有一个整数数组,已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数...
查看>>
山区建小学
查看>>
[javascript|基本概念|Number]学习笔记
查看>>
JSP EL表达式使用
查看>>
连接SQL Server数据库
查看>>
JAVA_Thread_deadlock
查看>>
中小企业网络安全提升
查看>>
[ZJOI2010]贪吃的老鼠
查看>>
爆栈的处理方法
查看>>