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

扫一扫,访问微社区

项目源码

关注:1235

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

查看: 2012|回复: 14

[Unity] Unity Socket TCP

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

1646

主题

1657

帖子

4295

积分

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

UID
132510
好友
17
蛮牛币
62364
威望
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 很给力!

查看全部评分


回复

使用道具 举报

排名
23011
昨日变化
11

0

主题

54

帖子

72

积分

Rank: 2Rank: 2

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

回复 支持 反对

使用道具 举报

排名
50570
昨日变化
751

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

1

主题

49

帖子

147

积分

Rank: 2Rank: 2

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

回复

使用道具 举报

排名
31624
昨日变化
17

0

主题

8

帖子

17

积分

Rank: 1

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

回复

使用道具 举报

5熟悉之中
752/1000
排名
3197
昨日变化
1

10

主题

136

帖子

752

积分

Rank: 5Rank: 5

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

回复

使用道具 举报

排名
17035
昨日变化
8

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 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

6蛮牛粉丝
1102/1500
排名
1735
昨日变化

4

主题

185

帖子

1102

积分

Rank: 6Rank: 6Rank: 6

UID
81888
好友
2
蛮牛币
6150
威望
0
注册时间
2015-3-19
在线时间
319 小时
最后登录
2017-9-22

锦衣玉食

发表于 2016-12-30 10:38:23 | 显示全部楼层
就是来看看

回复

使用道具 举报

3偶尔光临
167/300
排名
10991
昨日变化
4

0

主题

36

帖子

167

积分

Rank: 3Rank: 3Rank: 3

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

回复

使用道具 举报

4四处流浪
423/500
排名
7496
昨日变化
75

1

主题

165

帖子

423

积分

Rank: 4

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

回复

使用道具 举报

3偶尔光临
229/300
排名
11367
昨日变化
6

0

主题

103

帖子

229

积分

Rank: 3Rank: 3Rank: 3

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

回复 支持 反对

使用道具 举报

2初来乍到
139/150
排名
11367
昨日变化
6

0

主题

43

帖子

139

积分

Rank: 2Rank: 2

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

回复

使用道具 举报

2初来乍到
107/150
排名
18394
昨日变化
9

0

主题

45

帖子

107

积分

Rank: 2Rank: 2

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

回复

使用道具 举报

5熟悉之中
905/1000
排名
2692
昨日变化

13

主题

138

帖子

905

积分

Rank: 5Rank: 5

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

回复

使用道具 举报

4四处流浪
363/500
排名
6545
昨日变化
68

0

主题

105

帖子

363

积分

Rank: 4

UID
211074
好友
0
蛮牛币
47
威望
0
注册时间
2017-3-10
在线时间
110 小时
最后登录
2017-9-24
发表于 2017-8-6 21:02:08 | 显示全部楼层
话说这个怎么用,直接复制然后编译就可以啦???

回复 支持 反对

使用道具 举报

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

本版积分规则

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