首页 新闻 会员 周边

问个 关于C# socket与亚马逊云服务器的问题

0
悬赏园豆:15 [待解决问题]

情况是这样的,在亚马逊申请了云主机,
也做了基本的设置

 

 

也设置好了弹性IP,

 

设置了安全组

 

 

听说VPC也要设置些什么,因为这里不知需要设置些什么,就随便弄了下

 

 

 

----------------------------------------------------------------------------------

然后下面是我的SOCKET程序的部分主要片段

服务端:

 1             IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 10000);// 
 2             // 创建套接字
 3             serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
 4             // 绑定网络端点IPEndPoint
 5             serverSocket.Bind(ipep);//
 6             // 监听,参数为请求队列中的最大请求数
 7             serverSocket.Listen(10);
 8 
 9             while (true)
10             {
11                 try
12                 {
13                     // 接收客户的连接请求。   
14                     clientSocket = serverSocket.Accept();
15                     MessageBox.Show(clientSocket.RemoteEndPoint.ToString());
16                     clientThread = new Thread(new ThreadStart(ReceiveData));
17                     clientThread.Start();
18                 }
19                 catch (System.Exception ex)
20                 {
21                     MessageBox.Show("listening Error: " + ex.Message);
22                 }
23             }

 

客户端:

 1             // 通过主机IP地址和端口号,形成到服务的连接点
 2             IPEndPoint ipep = new IPEndPoint(IPAddress.Parse(/*"183.31.134.37"*/"52.24.87.83"), 10000);
 3             // 创建套接字
 4             clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
 5 
 6             //
 7             try
 8             {
 9                 clientSocket.Connect(ipep);
10             }
11             catch (System.Exception ex)
12             {
13                 MessageBox.Show("connect error: " + ex.Message);
14                 return;
15             }
16 
17             while (true)
18             {
19                 // 接收服务器信息
20                 int bufLen = 0;
21                 try
22                 {
23                     // 获取接收到的数据长度
24                     bufLen = clientSocket.Available;
25 
26                     clientSocket.Receive(data, 0, bufLen, SocketFlags.None);
27                     if (bufLen == 0)
28                     {
29                         continue;
30                     }
31                 }
32                 catch (System.Exception ex)
33                 {
34                     MessageBox.Show("Receive Error:" + ex.Message);
35                     return;
36                 }
37 
38             }

 

 

当把自己的服务端程序 放到亚马逊主机运行后,在其它电脑开启客户端进行连接,是连接不上的,请问下这是什么原因?

找了不少资料,也作了不少云主机设置的改变,但还是连接不上,虽然IP可以在命令行PING通,但程序就是连不上。

请各位能支支招。谢谢了。

问题补充:

最后我发现,可能亚马逊是外网的问题,用TX的就没有这问题。

yxlovemoney的主页 yxlovemoney | 初学一级 | 园豆:171
提问于:2017-02-24 13:48
< >
分享
所有回答(2)
0

MessageBox.Show 干掉


长蘑菇星人 | 园豆:1832 (小虾三级) | 2017-02-24 17:40
0

10000端口对外开放吗?用telnet 看下,不通就需要在防火墙设置了

kingreatwill | 园豆:383 (菜鸟二级) | 2017-02-24 17:53

不太懂TELNET怎么用,我TELNET 百 度 什么端口都连不上。求教。

支持(0) 反对(0) yxlovemoney | 园豆:171 (初学一级) | 2017-02-25 09:45

但上面的上入站规则我不是把端口范围设定在0~65535了吗

支持(0) 反对(0) yxlovemoney | 园豆:171 (初学一级) | 2017-02-25 10:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册