Server:
package com.wjy.server; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JTextArea; import javax.swing.JTextField; /** * caution:boot the server first. * @author Jiyuan Wang * */ public class TalkServer extends JFrame implements ActionListener{ private static JButton send=null; private static JTextField inputText=null; private static JTextArea showText=null; private static ServerSocket serverSocket=null; private static Socket socket=null; private static DataInputStream dataInputStream=null; private static DataOutputStream dataOutputStream=null; public TalkServer(){ send=new JButton("Send"); send.addActionListener(this); send.setEnabled(true); inputText=new JTextField(); showText=new JTextArea(); add(send,BorderLayout.NORTH); add(inputText, BorderLayout.SOUTH); add(showText, BorderLayout.CENTER); setTitle("Server"); setBounds(1000,0,400,400); setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); } public static void main(String[] args) { new TalkServer(); try { serverSocket=new ServerSocket(4170); socket=serverSocket.accept(); showText.append("Connect successd.\n"); dataInputStream=new DataInputStream(socket.getInputStream()); dataOutputStream=new DataOutputStream(socket.getOutputStream()); while (true) { showText.append("Client said: "+dataInputStream.readUTF()+"\n"); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub try { dataOutputStream.writeUTF(inputText.getText()); dataOutputStream.flush(); //本人一直把这个程序调试不通,最后发现没加这句话导致服务端显示不了客户端的输入。 showText.append("I said: "+inputText.getText()+"\n"); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } }
Client:
package com.wjy.client; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.Socket; import java.net.UnknownHostException; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JTextArea; import javax.swing.JTextField; /** * caution:boot the server first. * @author Jiyuan Wang * */ public class TalkClient extends JFrame implements ActionListener{ private static JButton send=null; private static JTextField inputText=null; private static JTextArea showText=null; private static Socket socket=null; private static DataInputStream inputStreamReader=null; private static DataOutputStream outputStreamWriter=null; public TalkClient(){ send=new JButton("Send"); send.addActionListener(this); send.setEnabled(true); inputText=new JTextField(); showText=new JTextArea(); add(send,BorderLayout.NORTH); add(inputText, BorderLayout.SOUTH); add(showText, BorderLayout.CENTER); setTitle("Client"); setBounds(0,0,400,400); setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); } public static void main(String[] args) { new TalkClient(); try { socket=new Socket("127.0.0.1",4170); inputStreamReader=new DataInputStream(socket.getInputStream()); outputStreamWriter=new DataOutputStream(socket.getOutputStream()); while(true){ showText.append("The Server said: "+inputStreamReader.readUTF()+"\n"); } } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub try { outputStreamWriter.writeUTF(inputText.getText()); outputStreamWriter.flush(); //本人一直把这个程序调试不通,最后发现没加这句话导致服务端显示不了客户端的输入。 showText.append("I said: "+inputText.getText()+"\n"); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } }
相关推荐
总之,Java的Socket和ServerSocket提供了强大的网络编程能力,通过C/S模式实现了客户端和服务器之间的高效通信。通过深入学习和实践,你可以掌握构建分布式应用程序的基础,为更复杂的网络项目打下坚实基础。
Java Socket编程是网络编程的基础,它提供了在两个应用程序之间建立通信连接的能力。在这个场景中,我们讨论的是如何使用Java的Socket来实现文件上传功能,即从客户端将文件发送到服务器,然后保存到服务器的数据库...
C/S架构下的Java Socket编程实现 本资源是关于C/S架构下的Java Socket编程实现,通过客户端和服务器端的代码实现了基本的访问功能。 Socket编程 Socket编程是指通过使用Socket对象来实现网络编程的方法。在Java...
【Java课程设计(C/S)】是针对计算机科学与技术专业学生的一项实践任务,旨在让学生深入理解客户端/服务器(Client/Server,C/S)架构,并掌握使用Java编程语言进行系统开发的技术。在这个项目中,学生们通常会被...
在IT领域,网络通信是不可或缺的一部分,而Java Socket编程则是实现网络通信的一种常见方式,尤其在TCP/IP协议栈上。本教程将详细讲解如何利用Java Socket实现基于TCP/IP的服务端和客户端之间的报文发送与接收。 ...
本篇介绍了一个简单的Java C/S通讯程序的设计与实现。通过这个例子,我们可以了解到如何利用Java进行基本的网络编程,以及C/S架构的基本原理。对于初学者来说,这是一个很好的学习起点。在未来的学习过程中,还可以...
Socket编程是Java语言中用于网络编程的主要技术之一。Socket是一种编程界面,用于实现客户方和服务方的连接。Socket通常用来实现客户机/服务器结构的通信。Socket是TCP/IP协议的一个十分流行的编程界面,一个Socket...
Java的Socket编程是实现C/S通信的关键。Socket是TCP/IP协议的一部分,用于两个网络应用程序之间建立连接,进行双向通信。在聊天系统中,服务器会创建一个监听Socket,等待客户端的连接请求。一旦连接建立,客户端和...
1. **Socket编程**:Java的`java.net.Socket`和`ServerSocket`类是实现C/S通信的基础。服务器端创建`ServerSocket`监听特定端口,等待客户端的连接请求;客户端使用`Socket`连接到服务器,建立通信通道。 2. **多...
在这个项目中,"Java swing实现简单的C/S聊天及文件传输系统"是利用Swing构建一个客户端/服务器(Client/Server)架构的聊天和文件传输应用。这个系统允许用户通过网络进行文本聊天并交换文件。以下是关于这个项目的...
一旦有新的玩家尝试连接,服务器会创建一个新的Socket与之对应,形成一对一对一的连接。每个玩家的Socket连接代表一个独立的通信通道,确保了游戏过程中玩家之间的消息互不影响。 游戏逻辑的实现主要分为以下几步:...
在Java中实现C/S模式的聊天室,我们可以利用Java丰富的网络编程库和多线程特性,构建稳定且高效的通信平台。 首先,我们需要理解C/S架构的基本概念。在这个模式中,"客户端"是用户直接交互的部分,负责显示信息和...
在这个场景中,我们讨论的是一个基于Java实现的网络版图书管理系统,它利用C/S模式为用户提供便捷的图书管理功能。 首先,让我们深入了解Java在C/S模式中的角色。Java作为一种跨平台的编程语言,具有丰富的类库和...
Java的Socket编程是Java网络编程的核心部分,它提供了在TCP/IP协议栈上进行通信的机制。Socket接口是对TCP/IP协议的抽象,使得开发者能够轻松地创建客户端和服务器应用程序,实现网络上的数据交换。在这个主题中,...
接下来,我们通过一个简单的Java Socket编程示例来深入了解如何在Java中实现Socket编程。该示例展示了一个简单的Web客户端程序,用于获取一个HTML页面的内容。 ```java import java.io.*; import java.net.*; ...
【标题】"基于C/S模式的Java聊天室"是一个典型的网络通信项目,它采用客户机/服务器(Client/Server,简称C/S)架构,通过Java编程语言实现。在这个模式下,客户端作为用户交互的界面,负责发送和接收聊天信息;而...
Java Socket实现的简单点对点聊天软件是一种基于网络通信的C/S(客户端/服务器)架构的应用。在这个系统中,服务器端作为一个中央节点,接收并转发客户端之间的消息,而客户端则负责用户交互,发送和接收聊天内容。...
在实际应用中,Java TCP/IP Socket编程常用于实现聊天程序、文件传输、远程控制等场景。理解并熟练掌握Socket编程,有助于开发者构建稳定、高效、可靠的网络应用。 `Java+TCPIP+Socket编程(中文版).pdf`这个文件很...
Java网络编程是开发分布式应用程序的关键技术之一,其中Socket编程扮演着至关重要的角色。在Java面试中,对Socket编程的理解和应用能力通常是评估开发者技能的重要标准。以下是对Socket编程的详细阐述: 1. **Java ...
一个简单的聊天室系统就是一个使用Java Socket实现的典型例子,服务器端接收多个客户端的连接请求,每个客户端都可以发送消息给其他所有在线的客户端。 十、总结 Java Socket编程是构建网络应用的基础,掌握其原理...