C# 启动客户端出现由于套接 字没有连接并且(当使用一个 sendto 调用发送数据报套

沧海1梦 2017-03-08 10:50:21
调试一个客户端的程序,启动的时候出现这个问题
      
namespace Client
{
public partial class Frmain : Form
{
#region 私有成员变量
private static ILog log = LogManager.GetLogger(typeof(Frmain));
private static int port = 2323;
private static ManualResetEvent receiveDone = new ManualResetEvent(false);
private static Thread ReviceThread;
private static Thread KeepAliveThread;
private static object obj = new object();
private static string MessageSN = "0";
private static IPAddress ipAddress;
string str = "192.167.100.1";
string str_ip;
#endregion
#region 公有成员变量
public static DateTime tempDate = DateTime.Now;
public static Socket client;
public static bool isNeedAlive = true;
StateObject state = new StateObject();
#endregion
public Frmain()
{
InitializeComponent();
StartClient();
}
/// <summary>
/// 启动客户端
/// </summary>
private void StartClient()
{
try
{
ipAddress = IPAddress.Parse(str);
ConnnectServer();
StartSendServer();
RunReceive();
// RunKeepAlive();

}
catch (Exception e)
{

MessageBox.Show(e.Message );
log.Error(e.Message.ToString());
str_ip = string.Empty;

}
}
/// <summary>
/// 取本机用户名,域名
/// </summary>
private void StartSendServer()
{
USER_IP data = new USER_IP();
//IPAddress[] ips = Dns.GetHostAddresses(Dns.GetHostName());
//foreach (IPAddress ip in ips)
//{
// str_ip += ip.ToString();//将得到的IP地址显示在文本框中
//}
// data.TOUSER_IP = str_ip;
data.USER_DOMAIN = Environment.UserDomainName;
data.USER_ID = Environment.UserName;
data.MESSAGESN = MessageSN;
data.WF_NAME = "0";
data.USER_STATE = "0";
SendUpConnectCommand(data);//调试到此,出现socket报错
str_ip = string.Empty;
}
...全文
1080 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xian_wwq 2017-03-13
  • 打赏
  • 举报
回复
引用 4 楼 cwt19902010 的回复:
[quote=引用 3 楼 xian_wwq 的回复:] 如果Server和client在同一台机器,那基本可以肯定Server有问题 如果在不同一台机器上, 那么检查下Windows系统防火墙相关策略,或者干脆先把防火墙关闭, 如果中间还有其他网络设备,涉及的都需要配置的
引用 3 楼 xian_wwq 的回复:
如果Server和client在同一台机器,那基本可以肯定Server有问题 如果在不同一台机器上, 那么检查下Windows系统防火墙相关策略,或者干脆先把防火墙关闭, 如果中间还有其他网络设备,涉及的都需要配置的
不在同一台机器上,我在本机安装oracle 10G,端口1521然后可以连接本地的服务器,但是给我的服务器IP是ping不通的,现在就郁闷了,不知道该怎么解决他说得断线重连问题,连不上服务器。[/quote] ping不通倒也可能,有的网络设备把icmp禁用了 但是如果telnet都访问不了服务侦听端口,那就不是代码能解决的事情了, 需要网管出手,对路由器,防火墙及相关设备进行设置。
沧海1梦 2017-03-10
  • 打赏
  • 举报
回复
引用 3 楼 xian_wwq 的回复:
如果Server和client在同一台机器,那基本可以肯定Server有问题 如果在不同一台机器上, 那么检查下Windows系统防火墙相关策略,或者干脆先把防火墙关闭, 如果中间还有其他网络设备,涉及的都需要配置的
引用 3 楼 xian_wwq 的回复:
如果Server和client在同一台机器,那基本可以肯定Server有问题 如果在不同一台机器上, 那么检查下Windows系统防火墙相关策略,或者干脆先把防火墙关闭, 如果中间还有其他网络设备,涉及的都需要配置的
不在同一台机器上,我在本机安装oracle 10G,端口1521然后可以连接本地的服务器,但是给我的服务器IP是ping不通的,现在就郁闷了,不知道该怎么解决他说得断线重连问题,连不上服务器。
沧海1梦 2017-03-08
  • 打赏
  • 举报
回复
引用 1 楼 xian_wwq 的回复:
先保证Server端侦听正常, 最简单的方式,使用telnet 访问指定的端口 如果侦听正常,再查代码的问题
他提供的2323这个是无效的,Telnet失败,我只有一个客户端程序,“SendUpConnectCommand(data);”,运行到这出现问题,应该是连接不上。
xian_wwq 2017-03-08
  • 打赏
  • 举报
回复
先保证Server端侦听正常, 最简单的方式,使用telnet 访问指定的端口 如果侦听正常,再查代码的问题
xian_wwq 2017-03-08
  • 打赏
  • 举报
回复
如果Server和client在同一台机器,那基本可以肯定Server有问题 如果在不同一台机器上, 那么检查下Windows系统防火墙相关策略,或者干脆先把防火墙关闭, 如果中间还有其他网络设备,涉及的都需要配置的

111,096

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧