简单的服务器和客户端程序代码实例
练习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, ...
代码包含服务器端和客户端的通讯以及交流,简单明了,容易看懂
MFC实现的利用ftp上传和下载文件的完整程序代码,包括客户端和服务器端,希望能够给需要的人以参考!
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 ...
Java利用DES私钥对称加密代码实例 Java加密解密工具集 JCT v1.0源码包.rar Java半透明图片实现的步骤及源代码.rar Java右键弹出菜单源码 Java吃豆子游戏源代码.rar Java图片加水印,支持旋转和透明度设置 Java圆形...
聊天室代码,来自标准书上的,十大经典游戏中的一个范例