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

扫一扫,访问微社区

项目源码

关注:1175

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

查看: 1765|回复: 13

[Unity] Unity Socket TCP

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

1646

主题

1657

帖子

4285

积分

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

UID
132510
好友
17
蛮牛币
57209
威望
0
注册时间
2015-12-24
在线时间
352 小时
最后登录
2017-6-20
发表于 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 很给力!

查看全部评分


回复

使用道具 举报

排名
21931
昨日变化
6

0

主题

55

帖子

73

积分

Rank: 2Rank: 2

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

回复 支持 反对

使用道具 举报

排名
48491
昨日变化
120

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
排名
10782
昨日变化
6

1

主题

49

帖子

147

积分

Rank: 2Rank: 2

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

回复

使用道具 举报

排名
29998
昨日变化
13

0

主题

8

帖子

17

积分

Rank: 1

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

回复

使用道具 举报

5熟悉之中
670/1000
排名
3334
昨日变化
3

9

主题

125

帖子

670

积分

Rank: 5Rank: 5

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

回复

使用道具 举报

排名
16280
昨日变化
7

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熟悉之中
961/1000
排名
1989
昨日变化
3

4

主题

163

帖子

961

积分

Rank: 5Rank: 5

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

回复

使用道具 举报

2初来乍到
129/150
排名
11983
昨日变化
4

0

主题

28

帖子

129

积分

Rank: 2Rank: 2

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

回复

使用道具 举报

4四处流浪
312/500
排名
8534
昨日变化
4

1

主题

116

帖子

312

积分

Rank: 4

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

回复

使用道具 举报

3偶尔光临
219/300
排名
11153
昨日变化
4

0

主题

102

帖子

219

积分

Rank: 3Rank: 3Rank: 3

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

回复 支持 反对

使用道具 举报

2初来乍到
129/150
排名
11318
昨日变化
2

0

主题

41

帖子

129

积分

Rank: 2Rank: 2

UID
196735
好友
0
蛮牛币
207
威望
0
注册时间
2016-12-28
在线时间
36 小时
最后登录
2017-7-11
发表于 2017-3-20 19:20:16 | 显示全部楼层
感谢分享

回复

使用道具 举报

2初来乍到
107/150
排名
17584
昨日变化
6

0

主题

47

帖子

107

积分

Rank: 2Rank: 2

UID
154633
好友
0
蛮牛币
53
威望
0
注册时间
2016-7-1
在线时间
42 小时
最后登录
2017-5-19
发表于 2017-5-8 08:47:49 | 显示全部楼层
dadadadadwfaad
[发帖际遇]: 一个袋子砸在了 wh19871001 头上,wh19871001 赚了 1 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

5熟悉之中
815/1000
排名
3091
昨日变化
2

13

主题

138

帖子

815

积分

Rank: 5Rank: 5

UID
164305
好友
0
蛮牛币
994
威望
0
注册时间
2016-8-29
在线时间
320 小时
最后登录
2017-7-21
发表于 2017-5-25 11:40:42 | 显示全部楼层
怎么用呀

回复

使用道具 举报

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

本版积分规则

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