Socket初试
来源:互联网 发布:188旅游网站源码 编辑:程序博客网 时间:2024/06/05 02:46
服务器
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Net.Sockets;using System.Net;namespace SocketServer{ class Program { static void Main(string[] args) { //创建Socket Socket tcpServer = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPAddress ipaddress = IPAddress.Parse("192.168.0.99"); IPEndPoint endpoint = new IPEndPoint(ipaddress, 50000); tcpServer.Bind(endpoint); tcpServer.Listen(100); Console.WriteLine("服务器启动完成"); //收到客户端Socket Socket clientSocket = tcpServer.Accept(); Console.WriteLine("接收到客户端的链接请求"); //向客户端发送消息 string message = "Hello Client"; var data = Encoding.UTF8.GetBytes(message); clientSocket.Send(data); Console.WriteLine("服务器向客户端发送了一条消息" + message); //收到客户端消息 byte[] data2 = new byte[1024]; int length = clientSocket.Receive(data2); string message2 = Encoding.UTF8.GetString(data2, 0, length); Console.WriteLine("收到服务器发送消息" + message2); //clientSocket.Close(); //tcpServer.Close(); //Console.Read(); } }}
客户端
Socket封装
using System;using System.Net;using System.Net.Sockets;using System.Security;public class SocketClient{public static Socket Connect( string ServerIP, int nPort, ref string result ){try{Socket socket = new Socket( AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp );IPEndPoint iPEndPoint = new IPEndPoint( IPAddress.Parse( ServerIP ), nPort );EndPoint remoteEP = iPEndPoint;socket.Connect( remoteEP );return socket;}catch( SocketException ex ){result = ex.ToString();}catch( ArgumentOutOfRangeException ex2 ){result = ex2.ToString();}catch( ArgumentNullException ex3 ){result = ex3.ToString();}catch( ObjectDisposedException ex4 ){result = ex4.ToString();}catch( InvalidOperationException ex5 ){result = ex5.ToString();}catch( SecurityException ex6 ){result = ex6.ToString();}catch( Exception ex7 ){result = ex7.ToString();}return null;}public static uint Send( Socket client, byte[] buff, uint nLen, SocketFlags flags = SocketFlags.None ){try{return (uint)client.Send( buff, (int)nLen, flags );}catch( SocketException ex ){//Console.WriteLine( ex.ToString() );}return 4294967295u;}public static void Close( Socket clientSocket ){try{if( clientSocket.Connected ){clientSocket.Shutdown( SocketShutdown.Both );}}catch( SocketException ex ){//Console.WriteLine( ex.ToString() );}try{clientSocket.Close();}catch( SocketException ex2 ){//Console.WriteLine( ex2.ToString() );}}public static uint Recv( Socket client, byte[] buff, uint nLen, uint flags = 0u ){try{//return (uint)client.Receive( buff, (int)nLen, (SocketFlags)flags );return (uint)client.Receive( buff );}catch( SocketException ex ){//Console.WriteLine( ex.ToString() );}return 4294967295u;}public static uint available( Socket socket ){return (uint)socket.Available;}}
Socket测试
using UnityEngine;using System.Collections;using System.Net;using System.Net.Sockets;public class SocketTest : MonoBehaviour {private string m_host = "192.168.0.99";private int m_port = 50000;private Socket m_client = null;private byte[] m_BufferTemp = new byte[1024];private uint receLength = 0u;void Start(){string empty = string.Empty;m_client = SocketClient.Connect( this.m_host, this.m_port, ref empty );if( m_client != null ){string sendMessage = "Client send message help" + Time.realtimeSinceStartup;m_client.Send( System.Text.Encoding.ASCII.GetBytes(sendMessage) );}if( m_client != null ){receLength = SocketClient.Recv( this.m_client, this.m_BufferTemp, 1024u, 0u );if( receLength != 0u && receLength != 4294967295u ){string str = System.Text.Encoding.UTF8.GetString( this.m_BufferTemp );Debug.Log( "get from server " + str + receLength + " bytes" );receLength = 0u;}}}}
0 0
- socket初试
- Socket初试
- [学习笔记]C# Socket初试-服务端
- [学习笔记]C# Socket初试-客户端
- 初试
- 初试
- 初试
- 初试
- socket.io broadcast的几种用法之初试
- 初试linux下的Socket通信(上)
- 初试linux下的Socket通信(中)
- 初试linux下的Socket通信(下)
- 透析ICMP协议(四): 牛刀初试之二 应用篇ping(RAW Socket)
- 透析ICMP协议(四): 牛刀初试之二 应用篇ping(RAW Socket)
- 面向对象程序设计第四次实验课——socket初试
- 初试blog
- 初试Groovy
- DHCP初试
- 成吉思汗
- (礼拜五log)前端适配方案:rem
- 如何正确选择虚拟主机服务商?
- Linux磁盘与文件系统Ext2
- html5篇——拖放(Drag和Drop)
- Socket初试
- 向android程序中加入ios的表情字符
- iOS run loop 详解
- 20160527 数据分析与SAS6 新建逻辑库与数据集
- qt-画波形图
- 20. 尚硅谷_佟刚_SpringMVC_ModelAttribute注解之源码分析(无写笔记)
- lintcode ----在二叉查找树中插入节点
- JS--- (function(){...})() 是什么
- POJ-20407Relatives/NYOJ-333mdd的烦恼,欧拉函数简单应用,模板A