import java.io.DataInputStream
import java.io.InputStreamReader
import java.io.OutputStream
import java.io.DataOutputStream
import java.io.BufferedReader
import java.net.ServerSocket
import java.net.Socket
import java.io.IOException
import java.util.Date
class Server
{
public Server()
{
try
{
ServerSocket s=new ServerSocket(8888)
Socket ss=s.accept()
OutputStream out=ss.getOutputStream()
DataOutputStream dout=new DataOutputStream(out)
InputStream in=ss.getInputStream()
DataInputStream din=new DataInputStream(in)
System.out.print(din.readUTF()+"!")
dout.writeUTF("你已经连接到服务器"+"\t"+"你的地址:"+ss.getInetAddress()+"\t"
+"你的链接端口:"+ss.getLocalPort()+"\n")
new ReadMessage(din).start()
new SendMessage(dout).start()
}
catch (IOException e)
{
e.printStackTrace()
}
}
public static void main(String[] args)
{
new Server()
}
}
//接受客户端信息
class ReadMessage extends Thread
{
private DataInputStream din
public ReadMessage(DataInputStream din)
{
this.din=din
}
public void run()
{
String str
try
{
while (true)
{
str=din.readUTF()
System.out.println(new Date().toLocaleString()+"客户端说:"+str)
if (str.equals("bye"))
{
System.out.println("客户端下线!")
break
}
}
}
catch (IOException e)
{
e.printStackTrace()
}
}
}
// 发出服务器信息
class SendMessage extends Thread
{
private DataOutputStream dout
public SendMessage(DataOutputStream dout)
{
this.dout=dout
}
public void run()
{
InputStreamReader inr=new InputStreamReader(System.in)
BufferedReader buf=new BufferedReader(inr)
String str
try
{
while(true)
{
str=buf.readLine()
dout.writeUTF(str)
if (str.equals("bye"))
{
System.out.println("服务器退出!")
System.exit(1)
}
}
}
catch (IOException e)
{
e.printStackTrace()
}
}
}
import java.io.InputStream
import java.io.DataInputStream
import java.io.InputStreamReader
import java.io.OutputStream
import java.io.DataOutputStream
import java.io.BufferedReader
import java.net.Socket
import java.io.IOException
import java.util.Date
class Client
{
public Client()
{
try
{
Socket s=new Socket("192.168.1.2",8888)
InputStream in=s.getInputStream()
DataInputStream din=new DataInputStream(in)
OutputStream out=s.getOutputStream()
DataOutputStream dout=new DataOutputStream(out)
dout.writeUTF("服务器你好!我是客户端")
System.out.println(din.readUTF())
new Thread(new SenderMessage(dout)).start()
new Thread(new ReaderMessage(din)).start()
}
catch (IOException e)
{
e.printStackTrace()
}
}
public static void main(String[] args)
{
new Client()
}
}
class ReaderMessage implements Runnable
{
private DataInputStream din
public ReaderMessage(DataInputStream din)
{
this.din=din
}
public void run()
{
String str
try
{
while(true)
{
str=din.readUTF()
System.out.println(new Date().toLocaleString()+"服务器说:"+str)
if (str.equals("bye"))
{
System.out.println("服务器已经关闭,此程序自动退出!")
break
}
}
}
catch (IOException e)
{
e.printStackTrace()
}
}
}
class SenderMessage implements Runnable
{
private DataOutputStream dout
public SenderMessage(DataOutputStream dout)
{
this.dout=dout
}
public void run()
{
String str
InputStreamReader inf=new InputStreamReader(System.in)
BufferedReader buf=new BufferedReader(inf)
try
{
while (true)
{
str=buf.readLine()
dout.writeUTF(str)
if (str.equals("bye"))
{
System.out.println("客户端自己退出!")
System.exit(1)
}
}
}
catch (IOException e)
{
e.printStackTrace()
}
}
}
服务器的具体用途如下:1)留言服务器:主要用于留言推送,到用户推送室聊天留言,私人留言。
2)业务服务器:手机直播业务部分,朋友关系,直播管理,货币系统,礼品系统等。
3)视频服务器:视频直播、视频点播、转码、存储、视频点播等。
4)我的即时聊天:使用node.js服务来建立自己的部署聊天服务器。
5)视频流(流媒体服务器):建议使用第三方CDN打开要使用的账户。
PowerTalkBox,现在我们公司就用这个,用ASP.NET实现的,源码开放,方便第二次开放,支持单聊,多聊,群聊。你想看看效果可以去http://www.51aspx.com/CV/PowerTalkBox
这个我用的是QQ客服,链接到QQ的,像现在QQ那么普及。。
源码那里是链接到自己站内的聊天室的,不用安插件什么的,还提供表情和聊天记录的保存
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)