C#创建TCP/IP服务端和客户端,含测试demo及源码

网上的TCP/IP创建服务端和客户端的方法鱼龙混杂,自己把在使用项目中的TCP服务端和客户端的代码抽了出来,做了demo,以供大家使用参考。

为了方便调用,我把一些基础方法都整合封装到了Reader.dll中,直接调用方法即可,非常方便(伸手党直接下源码运行即可)

源码下载地址:https://download.csdn.net/download/horseroll/10444188

源码中包含dll文件,直接下载源码即可

dll文件下载地址:https://download.csdn.net/download/horseroll/10444167

源码程序运行使用方法:先打开服务端,再打开客户端,然后即可互相发送信息

效果图:


1.客户端编写

客户端连接方法使用readerCamera.ConnectServer方法,监听事件为ReceiveDataCamera,发送信息为readerCamera.ServerSendMessage方法

  1. public partial class Client : Form
  2. {
  3. private Reader.ReaderMethod readerCamera; //摄像头采集类
  4. public Client()
  5. {
  6. InitializeComponent();
  7. //初始化访问实例
  8. readerCamera = new Reader.ReaderMethod();
  9. //回调函数
  10. readerCamera.ReceiveCallback = ReceiveDataCamera;
  11. }
  12. private void btnopenclient_Click(object sender, EventArgs e)
  13. {
  14. string strLog = string.Empty;
  15. string strException = string.Empty;
  16. IPAddress ipAddress = IPAddress.Parse( "127.0.0.1"); //监听的ip地址
  17. int nPort = 55; //监听的端口号
  18. int nRet = readerCamera.ConnectServer(ipAddress, nPort, out strException);
  19. if (nRet != 0) //如果连接摄像头失败
  20. {
  21. strLog = "连接摄像头失败,请确认是否已打开服务端,失败原因: " + strException;
  22. }
  23. else
  24. {
  25. strLog = "成功连接摄像头"+ipAddress+ ":"+nPort;
  26. }
  27. WriteLog(richTextBox1, strLog);
  28. }
  29. /// <summary>
  30. /// 客户端接收数据
  31. /// </summary>
  32. /// <param name="btAryReceiveData"></param>
  33. private void ReceiveDataCamera(byte[] btAryReceiveData)
  34. {
  35. string str = System.Text.Encoding.Default.GetString(btAryReceiveData); //数据接收转string
  36. //richTextBox1.AppendText("接收到数据:" + str);直接调用该方法会出现跨线程调用问题
  37. WriteLog(richTextBox1, "接收到数据:" + str);
  38. }
  39. private void btnclientsend_Click(object sender, EventArgs e)//发送数据
  40. {
  41. readerCamera.ServerSendMessage(System.Text.Encoding.Default.GetBytes(tbclient.Text)); //发送数据
  42. }
  43. }

2.服务端编写

服务端连接方法使用readerCameraOpenServer方法,监听事件为ReceiveDataCamera,发送信息为readerCamera.ServerSendMessage方法

  1. public partial class Server : Form
  2. {
  3. private Reader.ReaderMethod readerCamera; //摄像头采集
  4. public Server()
  5. {
  6. InitializeComponent();
  7. Client client = new Client();
  8. client.Show();
  9. //初始化访问读写器实例
  10. readerCamera = new Reader.ReaderMethod();
  11. //回调函数
  12. readerCamera.ReceiveCallback = ReceiveDataCamera;
  13. }
  14. private void btnopenserver_Click(object sender, EventArgs e)
  15. {
  16. readerCamera.OpenServer( 55); //打开服务端,监听端口55
  17. WriteLog(richTextBox1, "打开端口55成功"); //点击事件中调用该写入方法不会报错
  18. }
  19. /// <summary>
  20. /// 服务器接收数据
  21. /// </summary>
  22. /// <param name="btAryReceiveData"></param>
  23. private void ReceiveDataCamera(byte[] btAryReceiveData)
  24. {
  25. string str = System.Text.Encoding.Default.GetString(btAryReceiveData); //数据接收转string
  26. //richTextBox1.AppendText("接收到数据:" + str);直接调用该方法会出现跨线程调用问题
  27. WriteLog(richTextBox1, "接收到数据:" + str);
  28. }
  29. /// <summary>
  30. /// 发消息
  31. /// </summary>
  32. /// <param name="sender"></param>
  33. /// <param name="e"></param>
  34. private void btnserversend_Click(object sender, EventArgs e)
  35. {
  36. readerCamera.ServerSendMessage(System.Text.Encoding.Default.GetBytes(tbserver.Text)); //发送数据
  37. }
  38. }

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值