局域网通讯(100分)

  • 主题发起人 主题发起人 wanwqing
  • 开始时间 开始时间
W

wanwqing

Unregistered / Unconfirmed
GUEST, unregistred user!
请各位高手赐教:
如何编写局域网通讯程序?(最好给我详细程序)(最好从SERVER如何接收、CLIENT如何发送开始,这个我也不会,可以说是“刚刚涉及局域网通讯程序的菜鸟”)。
如何编写局域网聊天程序?
Delphi 4 的通讯控件如何使用!我没有这方面的资料!(Delphi中带的例子不太懂)!

 
我有arj压缩的原码,可以给你寄过去的
www.csdn.com上有一些文件格式你可以去看一看,
说不定也有arj压缩的原码,
另外,www.vclxx.com上的非可视单元也有的。
 
borland 的 例子中就有一个聊天程序和 c/s 没多大关系。使用 socket 编的
 
推荐ics 控件
 
推荐使用TNNMsg和TNNMsgSvr控件
 
谢谢各位大虾!
 
用Winshoes和ICS
 
TNNMsg和TNNMsgSvr控件可以。
 
TNNMsg和TNNMsgSvr?

1、
你编一个小程序,放TNNMsg和TNNMsgSvr上去就可以了,不需要其他代码,编译
然后退出delphi,独立运行这个程序,然后不要关这个程序,选退出windows
看能不能退出

2、打开winsight32,看最上面一行,你用TNNMsg发一条消息出去,然后看winsight32
多了什么,再发,再发,再发,再发,看它不停的建隐藏的新窗口,而且没有办法删
(delphi4和bcb4) (d5是否有改变就不知道拉)
 
现在外面卖的书里面很多就以聊天程序作为C/S编程的例子。另外用TNNMsg也可以做
的。我这里有几个例子,如果你要的话,我可以给你MAIL几个。
 
局域网下编写SQL SERVER程序,从何学起?一点头绪都没有,手头没有用DELPHI编写SQL SERVER程序的书。希望大家赐教!!!!!
 
这很简单:
程序如下:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ScktComp, Menus, ExtCtrls, ComCtrls, StdCtrls;

type
TForm1 = class(TForm)
Memo1: TMemo;
Memo2: TMemo;
StatusBar1: TStatusBar;
Splitter1: TSplitter;
MainMenu1: TMainMenu;
listening: TMenuItem;
exit1: TMenuItem;
ServerSocket1: TServerSocket;
procedure listeningClick(Sender: TObject);
procedure ServerSocket1Accept(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure Memo1KeyPress(Sender: TObject; var Key: Char);
procedure ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure exit1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.listeningClick(Sender: TObject);
begin
if listening.Checked
then
begin
listening.checked:=false;
serversocket1.active:=false;
statusbar1.simpletext:=' ';
end
else
begin
listening.checked:=true;
serversocket1.active:=true;
statusbar1.simpletext:='listening.... ';
end;
end;

procedure TForm1.ServerSocket1Accept(Sender: TObject;
Socket: TCustomWinSocket);
begin
statusbar1.simpletext:='connected'+socket.remoteaddress;
end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
memo2.Lines.Append(socket.receivetext);
end;

procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
if (key=#13) and (Serversocket1.Socket.activeconnections>0)
then
serversocket1.Socket.Connections[0].sendtext(memo1.lines[memo1.lines.count-1]);
end;

procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
statusbar1.simpletext:='listening....';
end;

procedure TForm1.exit1Click(Sender: TObject);
begin
close;
end;

end.

但这只是服务程序,还要一个客户程序。

夫子的上网要下网,下次告诉你客户程序,
你没 E-maill?
 
夫子我的妹儿:wanwqing@263.net
 
WANWQING:
实在对不起,这星期五给你邮去,这几天夫子很忙,夫子是学生,
忙的做课题设计。
2000,4,3
 
比较好的就是delphi 的 chat 例子, 简直是经典,
如果看不懂的话,其他的估计没有更简单的了。
 
question:
我现在想用DELPHI编一程序,该程序需要知道有那些用户正连接到我的服务器上,如何得到他们的IP地址?我的主要目的是想定时的查看哪些用户连接了,那些用户下了,已为程序使用。
不知哪为大虾....
 
WinSock是windows系统提供的一种网络文件传输协议。以往我们使用WinSock设计程
序时,必须调用系统提供的API来完成;但是在Visual Basic中调用API,因涉及参 数传递类型,用起来并不方便。Visual Basic 5.0 提供WinSock control简化我们的设计流程。它可以利用User Datagram Protocol(UDP)或Transmission Control Protocol (TCP),来设计网络的Client-Server 程序。
  TCP是一种Connection base的Protocol,在文件传输时会先行建立Link,通过Link
可确保文件传输的正确性;UDP则是一种Connectionless的Protocol,它在传输文件时不会确保传输端的文件能够正确无误的传送到接收端,所以当我们使用UDP protocol时,我们通常要自己作接收确认的工作。UDP protocol看起来好像比较没效率,其实不然!UDP protocol有一个好处:当文件很小,或我们要做网络boardcast (广播)时,会比较有效率。所以了! 当我们利用WinSock设计程序时,首先要依自己的需要,决定使用那一种protocol。本文将分别教您使用TCP及UDP Protocol来设计Chat程序。

Step 1???Domain name?IP address
  在“我的电脑”中选择“控制面板”。Double click“网络”选项,选择“标识”
,您将会发觉您的计算机名称、工作组名等信息。将它记录起来,我们稍后会用到。

Step 2???TCP Server??
  在File选项中选New Project建立一个新的工程,在屏幕上会看到许多选项,如ActiveX Document.EXE、ActiveX Document.DLL、ActiveX.EXE、ActiveXControl等,选Standard.EXE。
  接着在Project下选择Property属性选项,在General选项下将ProjectName改为TCP-Server,并将Form名称及Caption更改为Server。在屏幕的Form上加入一个WinSock control,取名为Tcps;加入两个TextBox control(Outtext、Intext),并在两个TextBox前加入两个label,分别将caption改为Outtext、Intext。

〈TextBox〉

Name

Outtext(????)

Intext(????)

〈Label〉

Caption

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

Outtext(????)

Intext(????)

  在Form_Load()中加入以下程序代码,这个动作是设置好我们Local的传输端口,并 到接收的状态:

Tcps.protocol=0-scktcp protocol

Tcps.LocalPort = 1002

Tcps.Listen

  双击Tcps,在Tcps_ConnectionRequest(ByVal requestID As Long)中加入以下程 序代码,这表示winsock接受了连接请求:


Tcps.Accept requestID

  双击Outtext到Outtext_change(),加入以下程序代码,当Outtext内容改变后,文件就会自动送出:


Tcps.SendData Outtext.text

在Tcps_DataArrival(ByVal bytesTotal As Long)中加入以下程序代码,这是用来把所接收的文件显示在Intext这个TextBox中。

Dim S As StrIng

Tcps.GetData S

InText.Text = S

这样我们就完成了Server端的设计。

Step 3???TCP Client??

在File选项中选择New Project建立一个新的工程,在屏幕上看到许多选项,如ActiveX Document.EXE、ActiveX Document.DLL、ActiveX.EXE、ActiveX Control等。选Standard.EXE。接着在Project下,选择Property属性选项,在General选项下,将Project Name改为TCP-Client,并将FORM名称及Caption更改为Client。

  在屏幕的Form上加入一个WinSock control,取名为Tcpc,将protocol property设置成 0-scktcp protocol,加入两个TextBox control(Outtext、Intext),并在两个TextBox前加入两个Label,分别将其Caption改为Outtext、Intext。接着放入一个Button(button1)并将Caption 改为Connect。

(TextBox)

Name

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

Outtext(????)

Intext(????)

(Label)

Caption

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

Outtext(????)

Intext(????)

〈Button〉

Name Caption

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

  Button1(执行建立session命令) Connect 在Form_Load()中加入以下程序代码,这个动作是设置好我们Remote所要连接的传输端口及其网络名称。我们要连接的计算机网络名称为DAVID:

Tcpc.RemoteHost ="David"

Tcpc.RemotePort=1002

  双击Outtext到Outtext_change()加入以下程序代码,当Outtext内容改变后,文件
会自动送出:

Tcpc.SendData Outtext.text

在Tcpc_DataArrival(ByVal bytesTotal As Long)中加入以下程序代码,这是用来把所接收的文件显示在Intext这个TextBox 中。

Dim S As StrIng

Tcpc.GetData S

InText.Text = S

这样就完成了Client端的设计。

Step 4???TCP Chat??

  分别执行Server及Client程序,这时在Client的屏幕上显示In及Out TextBox及一个 Connect Button;在Server屏幕上显示In及Out TextBox。

我们按Client程序Connect
  button建立连接,连接建立成功后,我们可尝试在
Client?Outbox ?????????Hello nice to meet you?????Server??Inbox??????? ?????Server?Outbox?????????Nice to meet you, too? ????Client??Inbox??????????????????

用UDP设计Chat程序

Step 1??????UDP(UDP1)??

  在File选项中选择New Project建立一个新的工程,屏幕上会看到许多选项,如ActiveX Document.EXE、ActiveX Document.DLL、ActiveX.EXE、ActiveX Control等,这时选Standard.EXE。接着在Project下选择Property属性选项,在General选项下将Project Name改为UDP1,将protocol property设置成0-udptcp protocol, 并将Form名称及Caption更改为UDP1。

  在屏幕的Form上加入一个WinSock control,取名为UDP1;加入两个TextBox control ( Outtext、Intext),并于两个TextBox前加入两个Label control,分别将Caption改为 Outtext、 Intext。

(TextBox)

Name


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

Outtext(????)

Intext(????)

(Label)

Caption

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

Outtext(????)

Intext(????)

  在Form_Load()中加入以下程序代码,这个动作是设置好我们要连接的远端输入端口
为 1001,并将输入端口设为1002。

UDP1.RemoteHost = "DAVID"

UDP1.RemotePort = 1001

UDP1.BInd 1002

  双击Outtext到Outtext_change(),加入以下程序代码,当Outtext内容改变,文件
会自动送出:

UDP1.SendData Outtext.text

在UDP1_DataArrival(ByVal bytesTotal As Long)中加入以下程序代码,这是用来把所接收的文件显示在Intext这个TextBox 中。

Dim S As String

UDP1.GetData S

InText.Text = S

这样我们就完成了UDP1的设计。

Step 2??????UDP(UDP2)??

  在File选项中选New Project建立一个新的工程,屏幕上会看到许多选项,如ActiveX Document.EXE、 ActiveX Document.DLL、ActiveX.EXE、ActiveX Control等,这时要选Standard.EXE。接着在Project下,选择Property属性选项,在General选项下,将Project Name改为UDP2,将protocol property设置成0-udptcp protocol,并将Form名称及Caption更改为UDP2 。

在屏幕的Form上加入一个WinSock control取名为UDP2 ,加入两个TextBox control ( Outtext、Intext),并在两个TextBox control前加入两个Label control,分别将Caption改为Outtext、Intext。

(TextBox)

Name

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

Outtext(????)

Intext(????)

(Label)

Caption

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

Outtext(????)

Intext(????)

  在Form_Load()中加入以下程序代码,这个动作是设置好我们要连接的远端输入端 口,设置为1002,并将输入端口设置为1001。

UDP2.RemoteHost = "MARY"
UDP2.RemotePort = 1002

UDP2.Bind 1001

  双击Outtext到Outtext_change()加入以下程序代码,当Outtext内容改变,文件就 会自动送出:

UDP2.SendData Outtext.text

  在UDP2_DataArrival(ByVal bytesTotal As Long)中加入以下程序代码,这是用来 把所接收的文件显示在Intext这个TextBox 中。

Dim S As StrIng

UDP2.GetData S

InText.Text = S

  这样我们就完成了UDP2的设计。

Step 3???UDP Chat??

  分别执行UDP1及UDP2程序。这时UDP1的屏幕上显示In及Out TextBox;UDP2屏幕也显示In及Out两个TextBox。我们在UDP1的Outbox中输入一些字符串 I want talk to Mary,我们将在UDP2端的Inbox看到这些字符串。接着我们在UDP2的Outbox也输入一些字符串This is Mary speaking!,我们将在UDP1端的Inbox看到这些字串。结果证明我们成功了!
triton
http://triton.home.chinaren.net

 
康炜の自由空间有一个例子
http://www.net-wing.net/kangwei/
热带鱼聊天室 2.000及其DELPHI源程序
(第四遍)
 
多人接受答案了。
 
后退
顶部