局域网聊天的程序的一些问题.各位帮帮忙。

gongqs 2003-08-30 11:42:49
我最近在试着做一个局域网聊天的程序,用UDP分别向本机所在的网段发出信息说明自己上线,然后在接收信息时如果没有这个IP或是这个IP不在线时就会出错。另外如果我知道IP之后,用什么函数可以根据IP得到网上该台计算机名称。
接收时的代码如下:
procedure TForm1.NMUDP1DataReceived(Sender: TComponent;
NumberBytes: Integer; FromIP: String; Port: Integer);
var
MyStream: TMemoryStream;
TmpStr,sarch_cname,sarch_cip: String;
k:integer;
begin
MyStream := TMemoryStream.Create;

listbox1.Items.add(fromip);
try
NMUDP1.ReadStream(MyStream); {如果IP不在会出错退出}
SetLength(TmpStr,NumberBytes);
MyStream.Read(TmpStr[1],NumberBytes);
Memo1.Lines.Add(FromIP+'说: ');
Memo1.Lines.add(' '+TmpStr);
finally
MyStream.Free;
end;
end;
...全文
33 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
changMeng 2003-08-30
  • 打赏
  • 举报
回复
好象NMUDP中有个属性是HOSTNAME吧,他可以得到主机的名字,以前写过,具体有点遗忘,但是如果对方的HOSTNAME为空那么得到的还是IP
lovedata 2003-08-30
  • 打赏
  • 举报
回复
解析IP地址为主机域名。
使用 WinSock 单元;

过程如下:

function IPAddrToName(IPAddr : String): String;

var

SockAddrIn: TSockAddrIn;

HostEnt: PHostEnt;

WSAData: TWSAData;

begin

WSAStartup($101, WSAData);

SockAddrIn.sin_addr.s_addr:= inet_addr(PChar(IPAddr));

HostEnt:= gethostbyaddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET);

if HostEnt<>nil then

begin

result:=StrPas(Hostent^.h_name)

end

else

begin

result:='';

end;

end;

1.linux系统介绍 以windows为内核的操作系统有哪些:win10   win8   win7  xp  系统    windows server 以linux为内核的操作系统有哪些:centos  ubuntu  debian   windows和linux  linux:服务器   安全    稳定 高效    windows:办公  家用  2.安装linux注意事项 对centos系统 的基本使用   有哪些文件夹   对文件/文件夹 进行操作  创建 删除  修改 移动 复制   写入 home 存放所有用户文件的根目录  soft :安装软件 cd  ll mkdir 创建文件  touch 空文件  echo sdsd>a.txt       vi a.txt vi c.txt  打开文件  按下i键  改为写入的模式    写完之后保存: 先按下esc 按键再按下:w 保存 :q退出  :wq    写完之后不想保存 强制退出  esc  :q! 删除文件/文件夹 rm -rf a.txt  b.txt rm -rf soft 复制 如果复制文件 cp  要复制的文件名   复制出来的文件名子    cp  a.txt   a1.txt 如果复制的是文件夹的 cp -r soft/   soft1 展示一个文件中的内容 cat  移动文件  mv  temp1   temp2 重命名 mv  temp1   temp2 查找: find /(查找的路径)  -name   *.txt    b 清屏  clear tab 按键 可以帮助我们把输入的内容补全   3.配置局域网  需要通过ssh软件远程操作linux系统 远程操作centos系统  在windows操作系统中通过一款软件来远程操作虚拟电脑中的centos系统  ssh软件: xshell  secureCRT 第一步在win10系统中下载并且安装ssh软件 secureCRT    第二步:只要知道centos系统所在电脑的公网IP  登录账户和密码      /  win10和centos系统所在的两台电脑在同一个局域网内  局域网IP  登录账户和密码 第三步:centos系统 进行局域网的设置 往网卡中写入一些数据   win10写入的方式:桌面的化操作和centos系统写入的方式是不一样的  ip 网关 子网掩码 NM_conteolle。。。 命令  找到往网卡写入数据的文件    重新启动网络服务 开启22端口   重启防火墙服务 网络桥接网络  *************************端口是否开启  4.配置外网  下载软件1.下载并且安装到系统中 node.js环境   npm install bootstrap   默认的镜像库 centos系统    yum install  服务名     默认的镜像库  2.自己下载服务  wget 服务的网络地址 自己单独安装  比较灵活 安装难度大 windows系统  exe文件 linux       rpm包

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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