zoukankan      html  css  js  c++  java
  • C#PC端TCP/IP与安卓通信源代码

    控制台程序:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Net;
    using System.Net.Sockets;
    using ConsoleApplication1;

    namespace ConsoleApplication1
    {
            public static class SocketTest
            {
                private static Encoding encode = Encoding.Default;

                /// <summary>
                /// 监听请求
                /// </summary>
                /// <param name="port"></param>
                public static void Listen(int port)
                {
                    Socket listenSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                    listenSocket.Bind(new IPEndPoint(IPAddress.Any, port));
                    listenSocket.Listen(100);
                    Console.WriteLine("Listen " + port + " ...");
                    while (true)
                    {
                        Socket acceptSocket = listenSocket.Accept();
                        string receiveData = Receive(acceptSocket, 5000); //5 seconds timeout.
                        Console.WriteLine("Receive:" + receiveData);
                        acceptSocket.Send(encode.GetBytes("ok"));
                        DestroySocket(acceptSocket); //import
                    }
                }
                /// <summary>
                /// 发送数据
                /// </summary>
                /// <param name="host"></param>
                /// <param name="port"></param>
                /// <param name="data"></param>
               /// <returns></returns>
                public static string Send(string host, int port, string data)
                {
                    string result = string.Empty;
                    Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                    clientSocket.Connect(host, port);
                    clientSocket.Send(encode.GetBytes(data));
                    Console.WriteLine("Send:" + data);
                    result = Receive(clientSocket, 5000 * 2); //5*2 seconds timeout.
                    Console.WriteLine("Receive:" + result);
                    DestroySocket(clientSocket);
                    return result;
                }
                /// <summary>
                /// 接收数据
                /// </summary>
                /// <param name="socket"></param>
                /// <param name="timeout"></param>
                /// <returns></returns>
                private static string Receive(Socket socket, int timeout)
                {
                    string result = string.Empty;
                    socket.ReceiveTimeout = timeout;
                    List<byte> data = new List<byte>();
                    byte[] buffer = new byte[1024];
                    int length = 0;
                    try
                    {
                        while ((length = socket.Receive(buffer)) > 0)
                        {
                            for (int j = 0; j < length; j++)
                            {
                                data.Add(buffer[j]);
                            }
                            if (length < buffer.Length)
                            {
                                break;
                            }
                        }
                    }
                   catch { }
                    if (data.Count > 0)
                    {
                        result = encode.GetString(data.ToArray(), 0, data.Count);
                    }
                    return result;
                }
                /// <summary>
               /// 销毁Socket对象
                /// </summary>
                /// <param name="socket"></param>
                private static void DestroySocket(Socket socket)
                {
                    if (socket.Connected)
                    {
                        socket.Shutdown(SocketShutdown.Both);
                    }
                    socket.Close();
                }
            }
        }
        class Program
        {
            static void Main(string[] args)
            {
                SocketTest.Listen(9876);
            }
        }

  • 相关阅读:
    短视频直播源码开发,防抖和节流的区别和实用场景
    游戏陪玩平台源码开发,语音通话中的噪音消除处理
    语音聊天室源码开发,如何实现回音消除功能?
    【代码解析】双向链表实现贪吃蛇游戏!简单易学,开发自己第一个游戏!
    程序员偷偷去面试,上班时却没发现身上还有其他公司的访客贴!
    编程语言年度观赏大戏,来看看内部撕X,你站谁?
    数组倒序排列,数组倒置,C语言数组倒序算法详解!
    编程领域这些禁术相当精彩,掌握其一,方可修炼编程大法!
    无处不在的网络编程,到底是如何工作的?今天我们一探究竟!
    【编程黑科技】gethostbyname()函数:通过域名获取IP地址!
  • 原文地址:https://www.cnblogs.com/liyu925/p/4398589.html
Copyright © 2011-2022 走看看