通过TCP进行客户端与服务器端通信

问题描述

为何只能进行单方通信?无法进行双方通信?????求大神解救!!!!!!!!!!packageswing;importjava.awt.BorderLayout;importjava.awt.Color;importjava.awt.Container;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.PrintStream;importjava.io.PrintWriter;importjava.net.ServerSocket;importjava.net.Socket;importjavax.swing.JFrame;importjavax.swing.JScrollPane;importjavax.swing.JTextArea;importjavax.swing.JTextField;importjavax.swing.border.BevelBorder;publicclassTest1903extendsJFrame{privateBufferedReaderreader;privateServerSocketserver;privateSocketsocket;privatePrintWriterwriter;//Socketsocket;privateJTextAreata=newJTextArea();privateJTextFieldtb=newJTextField();Containerc;publicTest1903(Stringtitle){super(title);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);c=this.getContentPane();finalJScrollPanescrollpane=newJScrollPane();scrollpane.setBorder(newBevelBorder(BevelBorder.RAISED));scrollpane.setBackground(Color.GREEN);getContentPane().add(scrollpane,BorderLayout.CENTER);scrollpane.setViewportView(ta);tb.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){writer.println(tb.getText());ta.append(tb.getText()+'n');ta.setSelectionEnd(ta.getText().length());tb.setText("");}});c.add(tb,"South");}publicvoidgetserver(){try{server=newServerSocket(8998);ta.append("服务器套接字已经创建成功n");for(;;){ta.append("等待客户机的连接n");this.socket=this.server.accept();this.reader=newBufferedReader(newInputStreamReader(this.socket.getInputStream()));getClientMessage();}}catch(Exceptione){e.printStackTrace();}}privatevoidconnect(){ta.append("tryconnectn");try{//Thread.sleep(4000);socket=newSocket("127.0.0.1",8999);writer=newPrintWriter(socket.getOutputStream(),true);ta.append("Succeedinconnectingn");}catch(Exceptione){e.printStackTrace();}}privatevoidgetClientMessage(){try{for(;;){if(this.reader.ready()){ta.append("客户机:"+this.reader.readLine());}}}catch(Exceptione){e.printStackTrace();try{if(this.reader!=null){this.reader.close();}if(this.socket!=null){this.socket.close();}}catch(IOExceptione1){e1.printStackTrace();}}}publicstaticvoidmain(String[]args){Test1903tcp=newTest1903("jahfb");tcp.setSize(500,500);tcp.setVisible(true);tcp.connect();tcp.getserver();}}packageswing;importjava.awt.BorderLayout;importjava.awt.Color;importjava.awt.Container;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.PrintStream;importjava.io.PrintWriter;importjava.net.ServerSocket;importjava.net.Socket;importjavax.swing.JFrame;importjavax.swing.JScrollPane;importjavax.swing.JTextArea;importjavax.swing.JTextField;importjavax.swing.border.BevelBorder;publicclassTest190301extendsJFrame{privateBufferedReaderreader;privateServerSocketserver;privateSocketsocket1;privatePrintWriterwriter;//Socketsocket;privateJTextAreata=newJTextArea();privateJTextFieldtb=newJTextField();Containerc;publicTest190301(Stringtitle){super(title);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);c=this.getContentPane();finalJScrollPanescrollpane=newJScrollPane();scrollpane.setBorder(newBevelBorder(BevelBorder.RAISED));scrollpane.setBackground(Color.GREEN);getContentPane().add(scrollpane,BorderLayout.CENTER);scrollpane.setViewportView(ta);tb.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){writer.println(tb.getText());ta.append(tb.getText()+'n');ta.setSelectionEnd(ta.getText().length());tb.setText("");}});c.add(tb,"South");}publicvoidgetserver(){try{server=newServerSocket(8999);ta.append("服务器套接字已经创建成功n");for(;;){ta.append("等待客户机的连接n");this.socket1=this.server.accept();this.reader=newBufferedReader(newInputStreamReader(this.socket1.getInputStream()));getClientMessage();}}catch(Exceptione){e.printStackTrace();}}privatevoidconnect(){ta.append("tryconnectn");try{//Thread.sleep(1000);socket1=newSocket("127.0.0.1",8998);writer=newPrintWriter(socket1.getOutputStream(),true);ta.append("Succeedinconnectingn");}catch(Exceptione){e.printStackTrace();}}privatevoidgetClientMessage(){try{for(;;){if(this.reader.ready()){ta.append("客户机:"+this.reader.readLine());}}}catch(Exceptione){e.printStackTrace();try{if(this.reader!=null){this.reader.close();}if(this.socket1!=null){this.socket1.close();}}catch(IOExceptione1){e1.printStackTrace();}}}publicstaticvoidmain(String[]args){Test190301tcp=newTest190301("asfaunf");tcp.setSize(500,500);tcp.setVisible(true);tcp.connect();tcp.getserver();}}

解决方案

时间: 2024-10-31 04:10:03

通过TCP进行客户端与服务器端通信的相关文章

c#客户端和服务器端通信问题

问题描述 c#客户端和服务器端通信问题 服务端ip:192.168.1.214.客户端ip:192.168.1.30 客户端代码public static void ReceiveStart(string localip, string localPort) { try { //创建接受套接字 IPAddress localIP = IPAddress.Parse(localip); IPEndPoint localIPEndPoint = new IPEndPoint(localIP, int

vb.net怎样实现多客户端与服务器端通信

问题描述 ImportsSystem.Net.SocketsImportsSystem.NetImportsSystem.ThreadingImportsSystem.TextPublicClassUsingAsyncSocketServerDimstrMessageAsStringDimmyListenerAsSocketDimbteAccept(65536)AsByteDimbteSend(65536)AsByteDimEndSocketAsSocketDimmyThread1AsThrea

有关客户端与服务器端通信的问题

问题描述 写了一段服务器端和客户端通信代码,实现以下功能:客户端将文件发送到服务器端,服务器端接收完文件后给客户端发送一个消息.运行代码后出现以下问题不知如何神马原因:客户端文件可以正确地传到服务器端,但是服务器端接收完文件后发送给客户端地确认消息,客户端收不到,报java.net.SocketException: Socket is closed的异常,请各位帮忙看看客户端代码package client;import java.io.*;import java.net.*;public cl

Android实现蓝牙客户端与服务器端通信示例

一.首先说明:蓝牙通信必须用手机测试,因为avd里没有相关的硬件,会报错! 好了,看看最后的效果图: 二.概述: 1.判断是否支持Bluetooth BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); if(bluetoothAdapter == null) { //the device doesn't support bluetooth } else { //the device support b

java多线程实现服务器端与多客户端之间的通信_java

用java语言构建一个网络服务器,实现客户端和服务器之间通信,实现客户端拥有独立线程,互不干扰. 应用多线程来实现服务器与多线程之间的通信的基本步骤 服务器端创建ServerSocket,循环调用accept()等待客户端链接 客户端创建一个Socket并请求和服务器端链接 服务器端接受客户端请求,创建socekt与该客户端建立专线链接 建立链接的socket在一个单独的线程上对话 服务器继续等待新的链接 服务器端Server.java package test.concurrent.socke

基于TCP的客户端服务器通信,如何在终端输入数据进行聊天呢,求大神帮我

问题描述 基于TCP的客户端服务器通信,如何在终端输入数据进行聊天呢,求大神帮我 //clientTcp.c #include #include #include #include #include #include #include #include #define SERVPORT 3333 //侦听端口地址 #define MAXDATASIZE 100 main(int argc,char argv[]) { int sockfd,sendbytes; char buf[MAXDATAS

php-androi客户端与服务器端的通信问题

问题描述 androi客户端与服务器端的通信问题 我用php写的服务器端, 我想要实现这么一个功能. 假设一共有4台android客户端,每一个客户端都向服务器传两个值(id,value),然后服务器再把所有接收到的值返回给每一个客户端,由此来形成一个数据共享. 从客户端传值到服务器我已经实现了,现在的问题就是怎么把服务器的所有(id,value)数据对返回给android客户端? 解决方案 http无状态 所以要用到比轮循更高级的"push技术" 解决方案二: socket连接 ud

反向Ajax:Comet用于服务器与客户端之间响应通信的流和长轮询

客户端的示例使用的是 jQuery http://www.aliyun.com/zixun/aggregation/33906.html">JavaScript 库.在这首篇文章中,我们探索不同的反向 Ajax 技术,使用可下载的例子来学习使用了流 (streaming) 方法和长轮询 (long polling) 方法的 Comet. Web 开发在过去的几年中有了很大的进展,我们已经远超了把静态网页链接在一起的做法,这种做法会引起浏览器的刷新,并且要等待页面的加载.现在需要的是能够通过

问一个笼统的问题,ios客户端和服务器通信都有什么方法

问题描述 问一个笼统的问题,ios客户端和服务器通信都有什么方法 ios客户端和服务器通信时都有那些方法?那种比较好用或最常用的? 解决方案 ios设备的网络通信的方法,有如下两个大类: 1.使用socket的方式进行通信. 2.使用asynsocket类库进行通信. 两种方法当中,我觉得asynsocket更好,因为是别人已经封装好的类库,比较稳定.但是对于直接使用socket的通信方法我倒是觉得很灵活.因为控制都是自己在做的事情. 先列举集中不同的使用方法: 1.直接使用socket的方式.