110,534
社区成员
发帖
与我相关
我的任务
分享
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using System.Net.Sockets;
using System.Net;
namespace SmartMobileHttpSocketDemo
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
button2.Enabled = false;
}
byte[] buffer = new byte[1024];
Socket socket;
private void button1_Click(object sender, EventArgs e)
{
try
{
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Connect(txt_ip.Text, int.Parse(txt_port.Text));
button1.Enabled = false;
button2.Enabled = true;
}
catch (Exception ex)
{
FuncWrite(ex.Message);
return;
}
socket.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveMessage), socket);
}
void ReceiveMessage(IAsyncResult ar)
{
try
{
var socket = ar.AsyncState as Socket;
var length = socket.EndReceive(ar);
byte[] reallData = new byte[length];
Array.Copy(buffer, reallData, length);
FuncWrite("Rece:" + string.Join("-", reallData.Select(d => d.ToString("X2")).ToArray()));
}
catch (Exception ex)
{
FuncWrite(ex.Message);
}
finally
{
socket.BeginReceive(buffer, 0, buffer.Length, SocketFlags.None, new AsyncCallback(ReceiveMessage), socket);
}
}
void FuncWrite(object text)
{
this.Invoke(new Action(() => listBox1.Items.Insert(0, text)));
}
private void button2_Click(object sender, EventArgs e)
{
var b = textBox3.Text.Split('-').Select(x => Convert.ToByte(x, 16)).ToArray();
socket.Send(b);
FuncWrite("Send:" + textBox3.Text);
}
private void button3_Click(object sender, EventArgs e)
{
listBox1.Items.Clear();
}
private void listBox1_MouseDoubleClick(object sender, MouseEventArgs e)
{
var SelectedItem = listBox1.SelectedItem;
if (SelectedItem != null)
{
var msg = SelectedItem.ToString().Replace("Send:", "").Replace("Rece:", "");
Clipboard.SetDataObject(msg, false);
}
}
}
}
TcpClient c = new TcpClient();
c.Connect(IPAddress.Parse("111.222.33.44"), 5566);
c.Client.Send(new byte[2]{0x01,0x02});
c.Client.Shutdown(SocketShutdown.Both);
c.Client.Close();
c.Close();