您的位置:首页 > 编程语言

Socket编程实现简易的聊天功能

2018-01-16 09:49 801 查看
网络:指的是将物理上分离的计算机通过连接形成的布局,而网络编程指的是实现网络的通讯操作,而在实际的工作之中网络编程分为两类:
· C/S结构(Client / Server):类似于QQ,需要编写两套程序,一套是服务器端程序,另外一套是客户端程序,而在进行维护的时候也需要维护两套程序,C/S使用专署的协议,所以安全性较高;
· B/S结构(Browse/Server):利用浏览器实现客户端功能,开发者只需要开发出服务器端一套程序即可,维护的时候也只需要维护一套程序,B/S结构一般都使用公共的通讯协议(HTTP),所以安全性较差。
         在C/S开发之中也分为两种:TCP(可靠的传输)、UDP(数据报的传输)。今天的内容主要以TCP程序为主,而这个就是Socket程序。

服务端:
public class Server {
public static void main(String[] args) {
try {
ServerSocket server=new ServerSocket(10010);
Socket socket=server.accept();

try {
DataInputStream dis=new DataInputStream(socket.getInputStream());//得到高级输入流

DataOutputStream dos=new DataOutputStream(socket.getOutputStream());//得到高级输出流

//             String get="";
String give="";
Scanner scanner=new Scanner(System.in);
while(true){
System.out.println("傻毕说:"+dis.readUTF());//得到客户端的消息
give=scanner.nextLine();
dos.writeUTF(give);                         //给客户端发消息
}
} finally{
socket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端:
public class Client {
public static void main(String[] args) {
try {
Socket client=new Socket("192.168.100.134",10010);

try{
DataOutputStream dos=new DataOutputStream(client.getOutputStream());//得到输出流
DataInputStream dis=new DataInputStream(client.getInputStream());//得到输入流

String give="";
Scanner scanner=new Scanner(System.in);

while(true){
give=scanner.nextLine();
dos.writeUTF(give);    //客户端发消息

System.out.println("服务器说:"+dis.readUTF());
}

}finally{
client.close();
}

} catch (IOException e) {
e.printStackTrace();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: