情况是这样的,在亚马逊申请了云主机,
也做了基本的设置
也设置好了弹性IP,
设置了安全组
听说VPC也要设置些什么,因为这里不知需要设置些什么,就随便弄了下
然后下面是我的SOCKET程序的部分主要片段
服务端:
IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 10000);//
// 创建套接字
serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// 绑定网络端点IPEndPoint
serverSocket.Bind(ipep);//
// 监听,参数为请求队列中的最大请求数
serverSocket.Listen(10);
while (true)
{
try
{
// 接收客户的连接请求。
clientSocket = serverSocket.Accept();
MessageBox.Show(clientSocket.RemoteEndPoint.ToString());
clientThread = new Thread(new ThreadStart(ReceiveData));
clientThread.Start();
}
catch (System.Exception ex)
{
MessageBox.Show("listening Error: " + ex.Message);
}
}
客户端:
// 通过主机IP地址和端口号,形成到服务的连接点
IPEndPoint ipep = new IPEndPoint(IPAddress.Parse(/*"183.31.134.37"*/"52.24.87.83"), 10000);
// 创建套接字
clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//
try
{
clientSocket.Connect(ipep);
}
catch (System.Exception ex)
{
MessageBox.Show("connect error: " + ex.Message);
return;
}
while (true)
{
// 接收服务器信息
int bufLen = 0;
try
{
// 获取接收到的数据长度
bufLen = clientSocket.Available;
clientSocket.Receive(data, 0, bufLen, SocketFlags.None);
if (bufLen == 0)
{
continue;
}
}
catch (System.Exception ex)
{
MessageBox.Show("Receive Error:" + ex.Message);
return;
}
}
当把自己的服务端程序 放到亚马逊主机运行后,在其它电脑开启客户端进行连接,是连接不上的,请问下这是什么原因?
找了不少资料,也作了不少云主机设置的改变,但还是连接不上,虽然IP可以在命令行PING通,但程序就是连不上。
但上面的设置全部都是云主机启动之后在后台设置的,而且在部分地方也不知设置得到底对不对。
麻烦各位能支支招,先谢谢了。
一个是检查你的程序所在的机器IP跟你PING的IP是同一个机器
另一个就是亚马逊的安全策略,是否允许对应端口访问。
这个问题还可以给亚马逊提ticket,让他们协助网络诊断