简单的服务器和客户端程序代码实例
练习Socket,DataInputStream,DataOutputStream,Thread,ActionListener的应用,功能很简单就是客户端输入用户名回车服务器校验用户名是否合法,我定义了只有jiqimiao时才是合法的。
服务器端代码如下:
importjava.awt.*;
importjava.io.*;
importjava.net.*;
importjava.util.*;
importjavax.swing.*;
/**
*服务器端程序
*@author左杰
*
*/
publicclassTestServerextendsJFrame{
/**
*
*/
privatestaticfinallongserialVersionUID=-4148974450944551683L;
privateJTextAreajta=newJTextArea();
publicstaticvoidmain(String[]args){
newTestServer();
}
publicTestServer(){
this.getContentPane().setLayout(newBorderLayout());
this.getContentPane().add(newJScrollPane(jta),BorderLayout.CENTER);
setTitle("server");
setSize(500,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
try{
ServerSocketserverSocket=newServerSocket(5000);//绑定服务器端口
jta.append("serverstartat"+newDate()+" ");
while(true){
Socketsocket=serverSocket.accept();//服务器监听
//启动监听线程
HandleClintthread=newHandleClint(socket);
thread.start();
}
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
/**
*接收和发送客户端的线程
*@author左杰
*
*/
classHandleClintextendsThread{
privateSocketsocket;
publicHandleClint(Socketsocket){
this.socket=socket;
}
publicvoidrun(){
try{
DataInputStreaminputFromClient=newDataInputStream(socket
.getInputStream());
DataOutputStreamoutputToClient=newDataOutputStream(socket
.getOutputStream());
while(true){
Stringins=DataInputStream.readUTF(inputFromClient);//接收客户端信息
Stringouts="您不是合法用户";
if(ins.equals("jiqimiao")){
outs="欢迎您:"+ins;
}
outputToClient.writeUTF(outs);//发送到客户端信息
jta.append(outs+" ");
}
}catch(Exceptione){
}
}
}
}
客户端代码如下:
importjava.awt.BorderLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.io.DataInputStream;
importjava.io.DataOutputStream;
importjava.io.IOException;
importjava.net.Socket;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JPanel;
importjavax.swing.JScrollPane;
importjavax.swing.JTextArea;
importjavax.swing.JTextField;
/**
*客户端程序
*@author左杰
*
*/
publicclassTestClientextendsJFrameimplementsActionListener{
/**
*
*/
privatestaticfinallongserialVersionUID=-1751294222460334070L;
privateJTextAreajta=newJTextArea();
privateJTextFieldjtf=newJTextField();
privateDataOutputStreamtoServer;
privateDataInputStreamfromServer;
publicstaticvoidmain(String[]args){
newTestClient();
}
publicTestClient(){
JPanelp=newJPanel();
p.setLayout(newBorderLayout());
p.add(newJLabel("请输入用户名:"),BorderLayout.WEST);
p.add(jtf,BorderLayout.CENTER);
jtf.setHorizontalAlignment(JTextField.LEFT);
this.getContentPane().setLayout(newBorderLayout());
this.getContentPane().add(p,BorderLayout.NORTH);
this.getContentPane().add(newJScrollPane(jta),BorderLayout.CENTER);
jtf.addActionListener(this);//添加事件侦听
setTitle("Client");
setSize(500,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
try{
Socketsocket=newSocket("localhost",5000);//链接指定服务器和端口
this.fromServer=newDataInputStream(socket.getInputStream());
this.toServer=newDataOutputStream(socket.getOutputStream());
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
jta.append(e.toString()+" ");
}
}
publicvoidactionPerformed(ActionEvente){//定义侦听器
if(e.getSource()instanceofJTextField){
try{
Stringtos=jtf.getText().trim();
toServer.writeUTF(tos);
toServer.flush();
Stringgets=DataInputStream.readUTF(fromServer);;
jta.append(gets+" ");
}catch(IOExceptione1){
//TODOAuto-generatedcatchblock
System.err.println(e1);
}
}
}
}
大家共同学习,共同进步。
分享到:
相关推荐
客户端和服务器端通信程序C#代码. 聊天实例程序
Qt5开发及实例,实例CH1005,最后,同时运行服务器和客户端程序,运行的效果如图10.15所示,这里演示的是系统中登录了两个用户的状态。 应用层的网络协议(如HTTP/FTP/SMTP等)简称“应用协议”,它们运行在TCP/UDP之...
资源名:VB应用WebSocket实例程序源码包含客户端和服务端的代码 资源类型:程序源代码 源码说明: 使用vb实现的WebSocket功能程序源码 包含客户端和服务端的源码 适合人群:新手及有一定经验的开发人员
一个Java聊天程序服务端和客户端程序,C/S结构,ChatServer 类实现了一个聊天室服务器端, 此类有一个构造器, 在构造器中使用newServerSocket()建立一个Socket 连接。RunServer()方法中运行聊天服务,通过Socket 类...
使用Java编写的服务器端与客户端交互小程序。代码简单易懂,具体内容请看我的博客:
服务器监听来自idHttp的数据,运行两个实例中的程序,可以相互发送文字信息或文件了,
delphi7下用RemObjects5.0.29开发网络程序的例子代码
以下为TCP客户端的程序代码: #!/usr/bin/env python3 import sys from PyQt5.QtCore import (QByteArray, QDataStream, QDate, QIODevice, QRegExp, Qt) from PyQt5.QtWidgets import (QApplication, QDateEdit, ...
代码包含服务器端和客户端的通讯以及交流,简单明了,容易看懂
Websocket是一种基于TCP协议的全双工通信协议,可以在客户端和服务器之间实现实时通信。在MFC中,可以使用CAsyncSocket类来实现Websocket客户端。下面是一个采用MFC编写Websocket客户端的示例:1. 创建MFC应用程序...
Python 通过 socket 实现服务端和客户端相互间网络通信的例子 通过socket实现网络通信 通过thread多线程实现同时收发
Java 仿QQ聊天程序源代码,包括了聊天客户端和服务器,前几年的程序,不过现在学习Java仍然很有用,一些方法和思路还是很值得学习的,对于转型Android开发的话,同样具有很强的借鉴意义。本Java聊天实例代码完整,...
实例067 如何制作聊天客户端程序 实例068 如何获取程序名称和路径 实例069 如何获取程序命令行参数 实例070 如何析取动态链接库中的图标 实例071 如何设置Edit组件的文本选择范围 实例072 如何将小写金额转换成...
摘要:Java源码,文件操作,TCP,服务器 Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。
实例067 如何制作聊天客户端程序 实例068 如何获取程序名称和路径 实例069 如何获取程序命令行参数 实例070 如何析取动态链接库中的图标 实例071 如何设置Edit组件的文本选择范围 实例072 如何将小写金额转换成...
基于C#的Windows CE程序实例,是一个完整的聊天软件代码,从服务器到客户端都有。
实例24 获取服务器和系统信息 实例25 分页显示信息 实例26 使用PHP简单实现BBS程序 实例27 使用0DBC函数库完成数据库操作 实例28 使用DOM处理XML 第4章 会话实例 实例29 创建会话 实例30 使用数据库保存会话 实例31 ...
聊天室代码,来自标准书上的,十大经典游戏中的一个范例
实例24 获取服务器和系统信息 实例25 分页显示信息 实例26 使用PHP简单实现BBS程序 实例27 使用0DBC函数库完成数据库操作 实例28 使用DOM处理XML 第4章 会话实例 实例29 创建会话 实例30 使用数据库保存会话 ...
Java利用DES私钥对称加密代码实例 Java加密解密工具集 JCT v1.0源码包.rar Java半透明图片实现的步骤及源代码.rar Java右键弹出菜单源码 Java吃豆子游戏源代码.rar Java图片加水印,支持旋转和透明度设置 Java圆形...