`
jiqimiao
  • 浏览: 63865 次
  • 性别: Icon_minigender_1
  • 来自: 常州
社区版块
存档分类
最新评论

简单的服务器和客户端程序代码实例

 
阅读更多

简单的服务器和客户端程序代码实例

练习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#高并发SOCKET服务器和客户端完整工程实例源码.zip

    本示例源码提供了C#语言实现的高并发SOCKET服务器和客户端的完整工程实例,这为开发者提供了学习和实践网络通信机制的机会。C#作为一种强大的.NET平台语言,拥有丰富的库支持,使得构建这样的系统变得相对简单。 ...

    C++聊天程序源程序,有服务器和客户端(Visual studio C++源代码程序)

    标题中的"C++聊天程序源程序,有服务器和客户端(Visual studio C++源代码程序)"指的是一个使用C++编程语言开发的聊天应用,该程序包含了服务器端和客户端的完整源代码,且是基于Microsoft Visual Studio IDE的。...

    客户端和服务器端通信程序C#代码

    1. **客户端程序实现**: - 创建Socket实例,指定协议类型(如TCP)和远程服务器的IP地址和端口号。 - 使用Socket的Connect方法建立到服务器的连接。 - 使用Socket的Send和Receive方法发送和接收数据。发送的数据...

    C#TCP-IP服务器和客户端源代码.rar

    本资源"**C# TCP-IP服务器和客户端源代码.rar**"就是针对C#新手设计的一套完整示例,帮助开发者理解和实现简单的TCP/IP通信。 首先,让我们深入了解TCP/IP协议。TCP/IP由四层模型组成:应用层、传输层、网络层和...

    Qt:Tcp服务器与客户端程序

    本项目“Qt:Tcp服务器与客户端程序”聚焦于利用Qt库来实现TCP(传输控制协议)通信。TCP是一种面向连接的、可靠的网络通信协议,它确保数据的正确排序和无丢失传输。 在描述中提到,该程序能够“建立TCP服务器后,...

    服务器和客户端实例

    在这个实例中,我们看到几个与服务器和客户端相关的文件,如server.pbl、client.pbl、proxy_cs.pbl、proxy_ss.pbl以及chat,这些可能是用于构建一个交互式聊天系统的组件。 首先,让我们了解服务器和客户端的基本...

    易语言服务器和客户端

    在易语言中,客户端程序会创建一个连接套接字,通过TCP或UDP协议连接到服务器的指定IP地址和端口。连接建立后,客户端可以发送数据并接收服务器返回的信息。"客户端.e"文件应该包含了建立网络连接、发送请求、接收...

    vc++ 邮槽实例(包括服务器和客户端)

    在这个邮槽实例中,服务器端可能是用VC++和MFC实现的一个服务程序,而客户端则是与其交互的应用。 在实现过程中,服务器端可能包含以下关键部分: 1. 监听套接字:服务器端需要创建一个监听套接字,用于等待客户端...

    SMTP及pop3客户端程序代码

    在提供的压缩包中,"SMTP及pop3客户端程序代码"可能包含了实现SMTP和POP3协议功能的源代码。这些代码可能用C++, Python, Java或其他编程语言编写,可以帮助开发者理解如何在应用程序中集成邮件发送和接收功能。通过...

    Java服务端和客户端交互实例

    总之,这个Java服务器端和客户端交互实例是一个简单的网络通信示例,它展示了如何通过Java的Socket API实现两端之间的数据传输。通过学习和实践此类程序,开发者可以更好地掌握网络编程的关键技术和原理。

    c#一个简单的服务器和客户端的例子

    在这个"一个简单的服务器和客户端的例子"中,我们将深入探讨如何使用这两个类来构建基本的TCP通信。 首先,让我们了解`TcpListener`。这个类是用来监听特定端口上的连接请求的。在服务器端,我们需要创建一个`Tcp...

    编写简单的HTTP 1.0客户端/服务器程序:.编写多线程Web服务器:编写简单的RMI程序

    本实验旨在通过编写简单的HTTP 1.0客户端/服务器程序、多线程Web服务器以及RMI程序,帮助你深入理解这些关键技术。 首先,我们来看HTTP 1.0客户端/服务器程序。HTTP是超文本传输协议,它是互联网上应用最为广泛的一...

    SOCKET实例---服务器端和客户端程序

    本篇将通过一个简单的示例,介绍如何使用C++语言编写基于UDP协议的Socket服务器端和客户端程序。 首先,我们来看服务器端的代码。服务器端主要完成了以下功能: 1. 初始化Winsock库:通过调用`WSAStartup`函数设置...

    Qt5开发及实例-CH1005.rar,Qt5同时运行服务器和客户端程序的代码

    Qt5开发及实例,实例CH1005,最后,同时运行服务器和客户端程序,运行的效果如图10.15所示,这里演示的是系统中登录了两个用户的状态。 应用层的网络协议(如HTTP/FTP/SMTP等)简称“应用协议”,它们运行在TCP/UDP之...

    Neety服务器与客户端简单案例

    本案例是关于如何使用Netty构建简单的服务器和客户端的示例,旨在帮助初学者理解Netty的工作原理和基本用法。 首先,让我们了解一下Netty的基本架构。Netty的核心组件包括Bootstrap(启动引导类)、Channel(通道)...

    SuperSocket框架实现服务器和Winform客户端代码

    在Winform设计界面中,可以添加控件如按钮来触发连接操作,然后在后台代码中实例化`Client`,设置服务器地址和端口,并调用`Connect`方法发起连接。 数据传输方面,SuperSocket支持自定义协议。你可以通过继承`...

    RemObject服务器与客户端的完整实例

    总的来说,这个"RemObject服务器与客户端的完整实例"是一个学习RemObjects和Delphi7网络编程的宝贵资源。通过实践这个例子,开发者可以深入了解如何在C/S架构中使用RemObjects进行通信,以及如何在Delphi环境中设计...

    AndroidHttps服务器端和客户端简单实例

    ### AndroidHttps服务器端和客户端简单实例 #### 工具与环境配置 本示例通过构建一个简单的HTTPS服务器端与客户端应用程序来演示如何在Android设备上实现安全的数据传输。以下是所需的工具及环境配置: 1. **...

    客户端和服务器端通信程序

    - **ChatClient**:客户端程序通常包含连接服务器、发送数据和接收数据的功能。它会创建一个Socket对象,通过`Connect`方法连接到服务器,然后使用`Send`和`Receive`方法进行数据交换。 - **ChatServer**:服务器...

    VB应用WebSocket实例程序源码包含客户端和服务的代码

    资源名:VB应用WebSocket实例程序源码包含客户端和服务端的代码 资源类型:程序源代码 源码说明: 使用vb实现的WebSocket功能程序源码 包含客户端和服务端的源码 适合人群:新手及有一定经验的开发人员

Global site tag (gtag.js) - Google Analytics