最近心思把ScktSrvr程序修改在服务器程序中,不用单独启动ScktSrvr,
把重要的代码从ScktSrvr复制出来,只是简单的修改了创建端口号的代码.
去掉本来就没有作用的代码,但是只要我运行服务器,就会报内存读取错误.
出错一句是:Event := FTransport.GetWaitEvent;
如果去掉这句,就成死循环了.
不知论坛里面有没有朋友也改写过,并且成功了,给我个源代码看看.或是给我
个提示.谢谢了.

解决方案 »

  1.   

    1 不单独启动 可以以服务启动2 我以前也想这么做,但连access时正常,连SQL就不行 后来在服务端启动时先判断scktsrvr是否启动,如果没启动就运行它
      

  2.   

    我到没有怎么去瘦身,只是取出了最重要的,一些和页面相关的,比如添加到ListView里面的连接用户这些我都给去掉了.
    再就是修改了获取注册表端口号的部分..对最重要的都是直接复制出来,但是就是不行.真郁闷..
    再看看还有没有人给我点建议,晚上回家结贴!
    谢谢楼上二位!
      

  3.   

    那就直接在原来的Project上修改.添加连接用户列表的部分,只需要把相关的代码注释掉即可.获取端口倒也只需要替换掉即可.
      

  4.   

    在你的服务端代码中判断SocketServer有没启动,如果没有就启动,这样也能达到目的,而且最简单!
    这里假设ScktSrvr.exe和服务端EXE部署在同一目录下
      if OpenMutex(MUTEX_ALL_ACCESS, False, 'SCKTSRVR') = 0 then
        if FileExists('scktsrvr.exe') then
          ShellExecute(Handle, 'open', pchar('scktsrvr.exe'), nil, nil, SW_SHOWNORMAL)
      

  5.   

    其实没有必要改ScktSrvr,只要把它放到系统启动任务里就行了