开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

项目源码

关注:1061

当前位置:游戏蛮牛 资源专区 项目源码

查看: 1273|回复: 10

[Unity] Unity Socket TCP

[复制链接]  [移动端链接]
7日久生情
3586/5000
排名
2621
昨日变化
1

1401

主题

1406

帖子

3586

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
132510
好友
17
蛮牛币
26881
威望
0
注册时间
2015-12-24
在线时间
278 小时
最后登录
2017-2-23
发表于 2016-9-9 10:55:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
  using UnityEngine;

  using System.Collections;

  using System.Collections.Generic;

  using System.Net.Sockets;

  using System.Net;

  using System.Text;

  using System;

  using System.Threading;

  namespace HelloSocket

  {

  /// <summary>

  ///配置信息

  /// </summary>

  /// ip地址 端口 类型:TCP/UDP

  class HelloAddress

  {

  private static string host ="127.0.0.1";

  private static int port = 5055;

  private static IPAddress ip = IPAddress.Parse(host);

  public static IPEndPoint IPEP = new IPEndPoint(ip, port);

  public static Socket hSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

  ///<summary>

  ///修改配置信息

  ///</summary>

  ///ip地址 端口 类型:TCP/UDP

  public static void SetHelloAddress(string ipStr, int iPort, System.Net.Sockets.ProtocolType type)

  {

  host = ipStr;

  port = iPort;

  ip = IPAddress.Parse(host);

  IPEP = new IPEndPoint(ip, port);

  hSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, type);

  }

  }

  ///<summary>

  ///客户端

  ///</summary>

  ///  API

  class HelloClient : HelloAddress

  {

  ///<summary>

  ///连接服务端

  ///</summary>

  public static void Main()

  {

  try

  {

  hSocket.Connect(IPEP);

  Thread threadConnect = new Thread(new ThreadStart(ReceiveMessage));

  threadConnect.Start();

  }

  catch (ArgumentNullException e)

  {

  Debug.Log(e.ToString());

  }

  catch (SocketException e)

  {

  Debug.Log(e.ToString());

  }

  }

  ///<summary>

  ///发送信息

  ///</summary>

  public static void SendMessage(string sendStr)

  {

  //确定是否连接

  if (hSocket.Connected)

  {

  IPEndPoint ipe = (IPEndPoint)hSocket.RemoteEndPoint;

  sendStr = ipe.ToString() + sendStr;

  byte[] bs = Encoding.ASCII.GetBytes(sendStr);

  hSocket.Send(bs, bs.Length, 0);

  }

  }

  ///<summary>

  ///接收信息

  ///</summary>

  private static void ReceiveMessage()

  {

  while (true)

  {

  byte[] recvBytes = new byte[1024];

  int iBytes = hSocket.Receive(recvBytes, recvBytes.Length, 0);

  if (iBytes <= 0)

  {

  break;

  }

  string recvStr = "";

  recvStr+=Encoding.ASCII.GetString(recvBytes,0,iBytes);

  Debug.Log("服务端返回的数据:" + recvStr);

  }

  }

  ///<summary>

  ///关闭套接字

  ///<summary>

  public static void Close()

  {

  hSocket.Close();

  }

  }

  ///<summary>

  ///服务端

  ///</summary>

  /// API

  class HelloServer : HelloAddress

  {

  //存储连接服务端的所有用户

  public static List<Socket> listPlayer = new List<Socket>();

  private static Socket sTemp;

  ///<summary>

  ///服务端 绑定地址并监听

  ///</summary>

  public static void Main()

  {

  try

  {

  Thread threadListenAccept = new Thread(new ThreadStart(ListenAccept));

  threadListenAccept.Start();

  }

  catch (ArgumentNullException e)

  {

  Debug.Log(e.ToString());

  }

  catch (SocketException e)

  {

  Debug.Log(e.ToString());

  }

  }

  ///<summary>

  ///监听用户连接

  ///</summary>

  private static void ListenAccept()

  {

  hSocket.Bind(IPEP);

  hSocket.Listen(0);

  sTemp = hSocket.Accept();

  listPlayer.Add(sTemp);

  Thread threadReceiveMessage = new Thread(new ThreadStart(ReceiveMessage));

  threadReceiveMessage.Start();

  while (true)

  {

  sTemp = hSocket.Accept();

  listPlayer.Add(sTemp);

  }

  }

  ///<summary>

  ///接收信息

  ///<summary>

  private static void ReceiveMessage()

  {

  while (true)

  {

  byte[] recvBytes = new byte[1024];

  int iBytes =sTemp.Receive(recvBytes, recvBytes.Length, 0);

  if (iBytes <= 0)

  {

  break;

  }

  string recvStr = "";

  recvStr += Encoding.ASCII.GetString(recvBytes, 0, iBytes);

  Debug.Log("客户端获取的数据:" + recvStr);

  }

  }

  ///<summary>

  ///发送信息

  ///</summary>

  public static void SendMessage(string sendStr)

  {

  IPEndPoint ipe = (IPEndPoint)sTemp.RemoteEndPoint;

  sendStr = ipe.ToString() + sendStr;

  byte[] bs = Encoding.ASCII.GetBytes(sendStr);

  sTemp.Send(bs, bs.Length, 0);

  }

  ///<summary>

  ///关闭套接字

  ///</summary>

  public static void Close()

  {

  for (int i = 0; i < listPlayer.Count; i++)

  {

  listPlayer[i].Close();

  }

  sTemp.Close();

  hSocket.Close();

  }

  }

  }

评分

参与人数 1鲜花 +2 收起 理由
风吹来 + 2 很给力!

查看全部评分


回复

使用道具 举报

排名
19903
昨日变化
21

0

主题

55

帖子

73

积分

Rank: 2Rank: 2

UID
166985
好友
0
蛮牛币
20
威望
0
注册时间
2016-9-5
在线时间
6 小时
最后登录
2016-11-3
发表于 2016-9-10 00:01:43 | 显示全部楼层
怎么这个编号器不会自动的实现代码的显示呢

回复 支持 反对

使用道具 举报

排名
43652
昨日变化
191

0

主题

21

帖子

31

积分

Rank: 1

UID
45865
好友
0
蛮牛币
0
威望
0
注册时间
2014-9-20
在线时间
8 小时
最后登录
2016-9-21
发表于 2016-9-21 16:13:45 | 显示全部楼层
缺币,来看看

回复

使用道具 举报

2初来乍到
147/150
排名
9830
昨日变化
6

1

主题

49

帖子

147

积分

Rank: 2Rank: 2

UID
44357
好友
1
蛮牛币
294
威望
0
注册时间
2014-9-10
在线时间
37 小时
最后登录
2016-11-15
发表于 2016-9-27 10:29:39 | 显示全部楼层
好东西……谢谢楼主……

回复

使用道具 举报

排名
27136
昨日变化
62

0

主题

8

帖子

17

积分

Rank: 1

UID
90825
好友
0
蛮牛币
10
威望
0
注册时间
2015-4-9
在线时间
3 小时
最后登录
2016-10-14
发表于 2016-10-14 09:19:17 | 显示全部楼层
就是来看看

回复

使用道具 举报

5熟悉之中
548/1000
排名
3767
昨日变化
5

9

主题

111

帖子

548

积分

Rank: 5Rank: 5

UID
159012
好友
1
蛮牛币
1513
威望
0
注册时间
2016-7-27
在线时间
177 小时
最后登录
2017-2-24
QQ
发表于 2016-11-2 20:26:36 | 显示全部楼层
看看 么么哒

回复

使用道具 举报

排名
14827
昨日变化
13

1

主题

22

帖子

75

积分

Rank: 2Rank: 2

UID
175656
好友
0
蛮牛币
83
威望
0
注册时间
2016-10-15
在线时间
31 小时
最后登录
2017-1-9
发表于 2016-11-9 22:35:32 | 显示全部楼层
mark一下
[发帖际遇]: a2220036 被钱袋砸中进医院,看病花了 1 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

5熟悉之中
649/1000
排名
2876
昨日变化
10

4

主题

130

帖子

649

积分

Rank: 5Rank: 5

UID
81888
好友
2
蛮牛币
3918
威望
0
注册时间
2015-3-19
在线时间
191 小时
最后登录
2017-2-24
发表于 2016-12-30 10:38:23 | 显示全部楼层
就是来看看

回复

使用道具 举报

2初来乍到
127/150
排名
10910
昨日变化
197

0

主题

28

帖子

127

积分

Rank: 2Rank: 2

UID
156414
好友
1
蛮牛币
211
威望
0
注册时间
2016-7-11
在线时间
52 小时
最后登录
2017-2-25
发表于 2017-1-12 18:01:15 | 显示全部楼层
好东西……谢谢楼主……

回复

使用道具 举报

3偶尔光临
278/300
排名
8678
昨日变化
6

1

主题

108

帖子

278

积分

Rank: 3Rank: 3Rank: 3

UID
116097
好友
0
蛮牛币
247
威望
0
注册时间
2015-7-31
在线时间
93 小时
最后登录
2017-2-23
发表于 2017-1-15 17:51:46 | 显示全部楼层
来看看!!!

回复

使用道具 举报

3偶尔光临
187/300
排名
10489
昨日变化
199

0

主题

90

帖子

187

积分

Rank: 3Rank: 3Rank: 3

UID
183900
好友
0
蛮牛币
246
威望
0
注册时间
2016-11-15
在线时间
46 小时
最后登录
2017-2-25
发表于 2017-2-7 11:03:06 | 显示全部楼层
话说这个怎么用,直接复制然后编译就可以啦???
[发帖际遇]: 低调嗯嗯 被钱袋砸中进医院,看病花了 2 蛮牛币. 幸运榜 / 衰神榜

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表