用什么软件可以和外国人聊天啊

用什么软件可以和外国人聊天啊,第1张

这是部分外国的聊天工具

较多使用ICQ, MSN.

Gaim for Windows V2.0.0

Gaim是多协议的即时通讯客户端,支持包括Linux,BSD,MacOS X和Windows在内的多种 *** 作系统,与AIM,ICQ,MSN Messenger,Yahoo,IRC,Jabber,Gadu-Gadu和Zephyr等多网络同时兼容。..

Gaim for Unix V2.0.0 Beta 4

Gaim 让您同时登入多种传讯软件帐号,支持AIM、ICQ、Yahoo!、MSN、Jabber、IRC、Napster、Gadu-Gadu及Zephyr等传讯工具,拆橘其使用者接口是使用GTK+所开发,备有档案传送、对话内容纪录...

Fake Webcam V2.

是一款网络聊天视频欺骗工具,软件的特点在于,你可以指定一个视频来源取代网络摄像头,而让和你聊天的人没有任何察觉。

Google Talk V1.0.0.98

Google Talk-Google的IM工具终于公开发布了,除了具有IM功能外,另外还加上了Viop功能,界面清新大方,可直接链接Gmail,接受查看邮件

PowerTools Pro For AOL V12.0.3.

如果你只是偶尔才上AOL,PowerTools LE能够快速且有效率的提供你需要的每样东西。有许多聊天功能、介面让你的网上聊天更有趣。还岁册有超强的Instant Messages以及好友列表功能。另外在...

phpFreeChat V1.0 beta6

php Free Chat 是一个简单快捷和可自定义的聊天服务端,可以让站长们迅速构建自己的聊天室,并可以保存聊天记录,它使用AJAX技术,可以让聊天的页面过渡转换变得更亲切,它还支持CSS模版...

雅虎通(Yahoo! Messenger) V8.0.

Yahoo!开发的聊天软件,功能包括:语音聊天:聊天不必打电话!只要你的电脑有连接麦克风和喇叭,即可和朋友畅谈对话。多方会谈:大家一起聊!同时和两个以上的朋友对谈聊天或传送文...

Chat Watch V4.4.6

Chat Watch 能够帮你监控 ICQ、AOL、MSN 以及 Yahoo Messenger 所有送出及收到的实时信息,Chat Watch 也拥有一个在执行时完全隐藏自己的强大的功能,这样使用者乎御宏就不会知道你的监控...

MySpaceIM V1.0.404.0 Beta

Myspace 推出自己的即时通讯工具MySpaceIM,用于Myspace会员间的沟通,具有一键登陆邮箱、公告板、查看朋友文档的功能。

Fomine WinPopup V4.7

Fomine WinPopup 可以完全代替Windows自带的WinPopup命令,它可以用来给你的同事发送消息,并且有自动回复功能!

Orkut Cute V6.3

可以让用户将信息发送给自己Orkut上的任何一个好友。另外,自己的Orkut上受到的信息也可以及时通过 Orkut Cute 显示出来。

Yakalike V0.93

是个Firefox的插件,使用它可以让人们在浏览相同的网站时,进行聊天对话。这个功能真的是太酷了!!!这样来和其他人讨论此网站的内容,很容易便能结识兴趣相同的朋友,估计以后的日...

Bopup Messenger V4.3.5.371

Bopup Messenger 这个程序是在Windows下使用的程序,它与WinPopup类似,新功能包括快速及忽略列表,网络组发,快速回到,自动转发,浏览历史聊天记录,支持多语言。

AOL Instant Messenger for Wind

这个由AOL所发展的网络聊天软件功能跟ICQ相似,在你安装Netscape Communicator时会一并安装这个软件。你只要到它的网站注册你个人独一无二的Screen Name (同ICQ的个人Number)

Secure Network Chat V2.14.

是一款适用于大中型局域网的安全文字通讯工具,适合雇员分组讨论、交换文件,所有客户端服务器数据通讯协议均以448位Blowfish算法进行加密。

e/Pop Remote Control Client V3

对等网下的信息传送器,可开聊天室,可远程结束任务,可远程重启。

BORGChat V0.9.9 Build 435

该聊天程序提供公共和私人聊天,支持留言板,聊天记录,多语言支持和文件传输。

mIRC V6.

英国 mIRC 公司出品的 IRC 类客户端软件,目前风靡于全世界。界面优美,彩色文本行,全 DCC、XDCC 文件发送和接收能力,aliases,远程命令和事件 *** 作,与位置相关的下拉菜单,WWW 和

雅虎通(Yahoo! Messenger) V8.0

Yahoo!开发的聊天软件,功能包括:语音聊天:聊天不必打电话。只要你的电脑有连接麦克风和喇叭,即可和朋友畅谈对话。多方会谈:大家一起聊。同时和两个以上的朋友对谈聊天或传送文...

Chat Anywhere V2.8

using System

using System.Collections.Generic

using System.Net

using System.Net.Sockets

using System.Threading

using System.Text

using System.IO

class Server

{

    Socket _listenSocket

    Dictionary<string, ClientProcess> _clients

    public Server(int port)

    {

        _clients = new Dictionary<string, ClientProcess>()

        _listenSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)

        IPEndPoint lep = new IPEndPoint(IPAddress.Any, port)

        _listenSocket.Bind(lep)

    }

    public void Start()

    {

        _listenSocket.Listen(5)

        for (  )

        {

            Socket client = _listenSocket.Accept()

            ClientProcess cp = new ClientProcess(this, client)

            ThreadStart ts = new ThreadStart(cp.Process)

            Thread t = new Thread(ts)

            t.Start()

        }

    }

    public void AddClient(string email, ClientProcess c)

    {

        lock (_clients)

        {

            if (!_clients.ContainsKey(email))

                _clients.Add(email, c)

        }

    }

    public void RemoveClient(string email)

    {

        lock (_clients)

        {

            if (_clients.ContainsKey(email))

                _clients.Remove(email)

        }

    }

    public void SendTo(string from, string email, string msg)

    {

        ClientProcess cp

        lock(_clients) {

            _clients.TryGetValue(email, out cp)

        }

        if (cp != null)

        {

            cp.Send(from, msg)

        }

    }

}

class ClientProcess

{

    Server _serv

    Socket _s

    TcpClient _tc

    StreamReader _sr

    StreamWriter _sw

    string email

    public ClientProcess(Server serv, Socket s)

    {

        _serv = serv

        _s = s

        _tc = new TcpClient()

        _tc.Client = _s

        _sr = new StreamReader(_tc.GetStream())

        _sw = new StreamWriter(_tc.GetStream())

    }

    public void Process()

    {

        try

        {

            email = _sr.ReadLine()

            _serv.AddClient(email, this)

            for (  )

            {

                string l = _sr.ReadLine()

                int i = l.IndexOf(':')

                if(i == -1)    

                    continue

                string em = l.Substring(0, i)

                string msg = l.Substring(i + 1)

                _serv.SendTo(email, em, msg)

            }

      此橘  }

        catch

        {

            _serv.RemoveClient(email)

        }

    }

    public void Send(string email, string msg)

    {

        _sw.WriteLine("{0}:{1}", email, msg)

   森茄团     _sw.Flush()

    }

}

class Program

{

    static void Main(string[] args)

    {

        Server s = new Server(12345)

        s.Start()

    }

}

协议是这纳败样的:

1、发送和接收都是以行为单位的

2、客户端连接后发送的第一行数据是自己的邮箱

3、客户端之后发送的格式是:  对方邮箱 冒号 要发送的消息。冒号是英文半角冒号,邮箱和冒号间没有空格

TCP/IP协议的传输即面向点到点的传输方式!

创建应用程序

选择 NEW 菜单下的 Application 选项 创建一个普通的应用程序

创建所需控件

首先在控件栏的Win 页中选择ImageList控件和CoolBar控件 再从Win 栏选择ToolBar控件放置到CoolBar 控件上 用鼠标右键单击 ImageList 控件 在d出的菜单中选择 ImageList Editer 选项 d出 ImageList Editer 对话框 单击 Add 按钮 选择 幅位图 在对象管理器Object Inspector中将ToolBar控件的Image属性设为 ImageList 用鼠标右键单击 ToolBar 控件 选 New Button 选项 总共创建 个ToolButton 在 对象管理器中将 个ToolButton的ImageIndex属性分别设置为 此时ImageList控件中的 幅位图碰李将会分别显示在Toolbutton上 将 个ToolButton控件的ShowHint属性全都设置为 ture 并将它们的Hint属性分别设置为 监听 连接 断开连接 更改你的昵称 和 退出聊天程序

然后在窗体中放置一个Edit控件 Memo控件 StatusBar控件和一个Label控件 将Label控件的Caption属性设置为 输入框 最后 也是最关键的 在控件栏的Internet页中选择SeverSocket控件和ClientSocket控件放置在窗体中 将SeverSocket控件和ClientSocket控件的Port属性设置为 SeverSocket控件是基于TCP/IP协议传输的服务器方的控件 它的主要作用是用来监听其它基于TCP/IP传输计算机的连接请求 并在收到连接请求时建立连接 进行数据传输 ClientSocket控件是基于TCP/IP传输的客户方的控件 它的主要作用是向监听 TCP/IP传输的服务器发出连接请求 在收到服务器的允许连接的响应后 建立连接 并传输数据 之所以在窗体中同时创建ServerSocket和ClientSocket控件 是因为应用程序既可作为服务器 又可作为客户端使用

Serversocket和ClientSocket之间的连接

首先设置两个全局变量

NickName:string

b_Client:boolean

其中NickName用于放聊天人的名称 b_Client用于表明应用程序是否作为客户端进行数据传输

在窗体Form 的毕锋Oncreate事件中初始化变量 代码如下

procedure TForm FormCreate(Sender:TObject)

begin

NickName:+= 我的昵称

b_Client:=ture

end

双击ToolButton 编写服务器监听代码如下

procedure TForm Toolbutton Click(Sender:TObject)

begin

ClientSocket close

ServerSocket open

StatusBar SimpleText:= 开始监听

end

双击ToolButton 编写客户的申请连接 代码如下

procedure TForm ToolButton Click(Sender:TObject)

var s:string

begin

if Clientsocket Active then

ClientSocket close

if InputQuery( 连接到计算机 要连接的计笑数迟算机名称或IP地址 s) then

if Length(s)>then 

with ClientSocket do

begin

Host:=s

open

end

end

在对象管理器中 双击ClientSocket事件页的OnConnecting事件 编写处理客户等待连接请求 代码如下

procedure TForm ClientSocket Connecting(Sender:TObjectSocket:TCustomWinSocket)

begin

StatusBar SimpleText:= 等待来自 +Socket RemoteAddress+ 的连接允许响应

end

在对象管理器中 双击SeverSocket事件页的OnAccept事件 处理服务器响应连接事件 代码如下

procedure TForm SeverSocket Accept(Sender:TObjectSocket:TCustomWinSocket)

begin

b_Client:=false

StatusBar SimpleText:= 连接到 +Socket RemoteAddress

end

在对象管理器中 双击ClientSocket事件页的OnConnect事件 OnConnect事件在连接成功时被调用 代码如下

procedure TForm ClientSocket Connect(Sender:TObjectSocket:TCustomWinSocket)

begin

b_Client:=ture

StatusBar SimpleText:= 连接成功

end

ServerSocket和ClientSocket之间的数据传输

聊天的内容是通过Edit控件输入并在敲回车键后显示在Memo控件中 再传输到与之连接的计算机中 Edit的OnKeyDown事件代码如下

procedure TForm Edit KeyDown(Sender:TObjectvar Key:WordShift:TShiftState)

begin

if Key=VK_Return then

begin 

Memo Lines Add(NickName+ : +Edit Text

if b_Client then

ClientSocket Socket SendText(Memo Lines[Memo lines Count ])

else

ServerSocket Socket Connections[ ] SendText(Memo Lines[Memo lines Count ])

end

end

在ServerSocket控件的onread事件中编写服务器接收到数据后的动作 代码如下

procedure TForm ServerSocket ClientRead(Sender:TObjectSocket:TCustomWinSocket)

begin

Memo lines Add(Socket ReceiveText)

end

在ClientSocket控件的onread事件中编写客户端接收到数据后的动作 代码如下

procedure TForm ClientSocket Read(Sender:TObjectSocket:TCustomWinSocket)

begin

Memo lines Add(Socket ReceiveText)

end

断开Serversocket和ClientSocket之间的连接

双击ToolButton 编写客户端断开的处理过程 代码如下

procedure TForm ToolButton Click(Sender:TObject)

begin

ClientSocket close

StatusBar SimpleText:= 断开连接

end

编写服务器响应客户端断开的处理过程 代码如下

procedure TForm ServerSocket ClientDisconnect(Sender:TObjectSocket:TCustomWinSocket)

begin

SeverSocket close

StatusBar SimpleText:= 断开连接

end

更改聊天者的昵称

双击Toolbutton 编写更改昵称代码如下

procedure TForm ToolButton Click(sender:TObject)

var

s:string

begin

if InputQuery( 更改昵称 你的新昵称 s) then

if Length(s)>then

NickName:=s

end

退出应用程序

双击Toolbutton 编写退出应用程序代码如下

procedure TForm ToolButton Click(sender:TObject)

ClientSocket close

ServerSocket close

Form close

end

保存并运行应用程序

lishixinzhi/Article/program/Delphi/201311/25042


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12353091.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存