Socket

using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Net.Sockets;
namespace socket_test
{
    public class Client
    {
        private Socket _client; //跟服务器连接的socket
        private bool _connected; //socket连接状态,表示断开或已经连接两种情况

        //连接服务器
        public void ConnectServer(string ip, int port)
        {
            //创建一个Socket
            _client = new Socket(
                AddressFamily.InterNetwork,
                SocketType.Stream,
                ProtocolType.Tcp);

            IPEndPoint ep = new IPEndPoint(IPAddress.Parse(ip),port);//把ip和端口转化为IPEndPoint实例

            _client.Connect(ep);
            _connected = true;
        }

        //返回连接状态
        public bool Connected
        {
            get { return _connected; }
        }
        //关闭连接
        public void CloseConnection()
        {
            if (_connected)
            {
                _client.Close();
                _connected = false;
            }
        }
        //发送消息
        public void SendMessage(string message)
        {
            byte[] buffer = Encoding.ASCII.GetBytes(message);
            _client.Send(buffer,buffer.Length,0);
        }

        /// <summary>
        /// //从服务器端接受返回信息
        /// </summary>
        /// <returns></returns>
        public string ReceiveBytes(string recvStr)
        {
            byte[] recvBytes = new byte[1024];
            int bytes;
            bytes = _client.Receive(recvBytes, recvBytes.Length, 0);
            recvStr += Encoding.ASCII.GetString(recvBytes, 0, bytes);
            return recvStr;
        }
    }
}

using System;
using System.Text;
using System.IO;
using System.Net;
using System.Net.Sockets;
namespace socket_test
{
    class Class1
    {
        static void Main()
        {
            try
            {
                int port = 80;
                string host = "192.168.1.38";
                Client cc=new Client();
                Console.WriteLine("Conneting...");
                cc.ConnectServer(host, port);//连接到服务器
                string sendStr = "hello!This is a socket test";
                Console.WriteLine("Send Message");
                cc.SendMessage(sendStr);//发送测试信息
                string recvStr = "";
                recvStr = cc.ReceiveBytes(recvStr);
                Console.WriteLine("Client Get Message:{0}", recvStr);//显示服务器返回信息
                cc.CloseConnection();
            }
            catch (ArgumentNullException e)
            {
                Console.WriteLine("ArgumentNullException: {0}", e);
            }
            catch (SocketException e)
            {
                Console.WriteLine("SocketException: {0}", e);
            }
            Console.WriteLine("Press Enter to Exit");
            Console.ReadLine();
        }
    }
}

 我看流年如过客,流年看我似行人.有些人,有些事情,一转身就是一辈子了,从此各不相干,各有各的生活,或许就是这样吧,

   所以,又能怎么样?不如沉默!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值