zoukankan      html  css  js  c++  java
  • 学习笔记(10) : Socket 编程典型代码积累

    网络编程实现的机制:
     
    服务器端:
    申请一个socket
    绑定到一个IP地址和端口上
    开启侦听,等待接受连接
     
    客户端:
    申请一个socket
    连接服务器(指明IP、端口)
     
    服务器端:
    接收到连接请求后,产生一个新的socket与客户端建立连接并进行通讯,原侦听socket继续侦听
     
     
     
     
    ============================================================================
     
    一、客户端 连接 服务器:
     
    服务器端代码:
                //创建 服务器 负责监听的套接字 ,参数(使用IP4)
                socketWatch = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                //获得文本框中的IP地址
                IPAddress address = IPAddress.Parse(txtIp.Text.Trim());
                //创建包含IP和Port的网络节点对象
                IPEndPoint endpoint = new IPEndPoint(address, int.Parse(txtPort.Text.Trim()));
                //将负责监听的套接字绑定到唯一的IP和端口上
                socketWatch.Bind(endpoint);
                //设置监听队列的长度
                socketWatch.Listen(10);
                Socket sokConnection = socketWatch.Accept();   //一旦客户端的请求,就会返回一个和该客户端通信的套接字sokConnection
                    ShowMsg("客户端连接成功");
     
     
     
    客户端连接代码:
                IPAddress address = IPAddress.Parse(txtIp.Text.Trim());
                IPEndPoint endPoint = new IPEndPoint(address,int.Parse(txtPort.Text.Trim()));
                Socket socketClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                socketClient.Connect(endPoint);
     
     
    ====================================================================================
     
    二、发送、接收数据
     
    发送数据:
                string strMsg = txtMsgSend.Text.Trim();
                //将字符串 转成 方便网络传送的二进制数据
                byte[] arrMsg = System.Text.Encoding.UTF8.GetBytes(strMsg);
                socketClient.Send(arrMsg);
                ShowMsg("我说:    "+strMsg);
     
    接收数据:
     
    void RecMsg()
            {
                while (true)
                {
                    //定义一个接收用的 缓存区(2M字节数组)
                    byte[] arrMsgRec = new byte[1024 * 1024 * 2];
                    //将接收到的数据存入arrMsgRec 数组,并返回真正接收到的数据的长度
                    int length=socketClient.Receive(arrMsgRec);
                    string strMsgRec = System.Text.Encoding.UTF8.GetString(arrMsgRec,0,length);  //后面两个参数用于解决换行,来自视频10
                    ShowMsg(strMsgRec);
                }
            }
     
  • 相关阅读:
    linux shell
    jsp应用
    JavaScript基础整理(2)
    Struts2验证框架实例
    一个Struts2的实例
    Java继承和多态实例
    VS2010webConfig配置
    html兼容性
    Linux 入门记录:一、命令行 Bash 的基本操作
    微信支付:curl 出错,错误码: 60
  • 原文地址:https://www.cnblogs.com/key1309/p/3145043.html
Copyright © 2011-2022 走看看