高分:求案例代码:java Socket 加请求参数,访问http服务端,并打印返回的数据!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高分:求案例代码:java Socket 加请求参数,访问http服务端,并打印返回的数据!相关的知识,希望对你有一定的参考价值。

RT
求大侠们帮帮我!
我在java socket太弱 !
头让我写个访问客户端并处理返回的数据!

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;
import java.net.*;

import java.io.*;

public class Client extends JFrame

/**
*
*/
private static final long serialVersionUID = -4733717749265129757L;
Container con=null;
JTextArea jta = null;
JTextField jtf = null;

//ArrayList al = new ArrayList();
//ServerSocket ss = null;

Socket s = null;

Client(String ip,int port)

try

s = new Socket(ip,port); //创建一个流套接字并将其连接到指定 IP 地址的指定端口号。
launchFrame();

catch(Exception e)

e.printStackTrace();

new Thread(new ClientR()).start();


public void sent(String str)
//发送消息方法
try

DataOutputStream dos = new DataOutputStream(s.getOutputStream()); // 创建一个新的数据输出流,将数据写入指定 返回s的套接字的输出流。
dos.writeUTF(str);

catch(Exception e)

e.printStackTrace();




public void disconnect() throws Exception

s.close(); //失去连接,关闭线程s


class ClientR implements Runnable
//客户端运行

/*Runnable 接口应该由那些打算通过某一线程执行其实例的类来实现。类必须定义一个称为 run 的无参数方法。

设计该接口的目的是为希望在活动时执行代码的对象提供一个公共协议。例如,Thread 类实现了 Runnable。
激活的意思是说某个线程已启动并且尚未停止。

此外,Runnable 为非 Thread 子类的类提供了一种激活方式。
通过实例化某个 Thread 实例并将自身作为运行目标,就可以运行实现 Runnable 的类而无需创建 Thread 的子类。
大多数情况下,如果只想重写 run() 方法,而不重写其他 Thread 方法,那么应使用 Runnable 接口。这很重要,
因为除非程序员打算修改或增强类的基本行为,否则不应为该类创建子类。

*/
public void run()

try

DataInputStream dis = new DataInputStream(s.getInputStream());//使用指定的底层 s.getInputStream(s的套接字的输入流) 创建一个 DataInputStream(数据输入流)
String str = dis.readUTF();
while(true)

jta.append(str+"\n");
str = dis.readUTF();


catch(Exception e)

e.printStackTrace();




public void startClient()
//客户端启用
try

BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //读取数据流
String str = br.readLine();
System.out.println(str);
while(true)

sent(str); //发送数据
if(str.equals("q"))
//如果读取的字符为q
disconnect(); //断开连接
return ;

str=br.readLine();


catch(Exception e)

e.printStackTrace();



public void launchFrame() throws IOException
//客户端面板布局

con = this.getContentPane();
jta = new JTextArea();
jtf = new JTextField();
final JTextField jtf1=new JTextField(10);
final JButton jb=new JButton("确认");

Panel p=new Panel();
//Panel p1=new Panel();

JLabel jl=new JLabel();
jl.setText("your name:");
//jl.getVerticalTextPosition();

jtf1.setBackground(Color.PINK);
jtf1.setBounds(10, 10, 10, 10);

p.add(jl);
p.add(jtf1);
p.add(jb);

jb.addActionListener(new ActionListener()

public void actionPerformed(ActionEvent e)

//e.getWhen();
e.getActionCommand();
jtf.setText(jtf1.getText().toString()+"say:");

);

jta.setBackground(Color.LIGHT_GRAY);
jta.setEditable(false); //不可编辑文本域
JScrollPane jsp = new JScrollPane(jta, //jta上滚动条的创建
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
//con.add(jb,BorderLayout.WEST);
con.add(jsp,BorderLayout.CENTER);
con.add(p,BorderLayout.NORTH);
con.add(jtf,BorderLayout.SOUTH);

jtf.addActionListener(new ActionListener()
///事件监听
public void actionPerformed(ActionEvent e)

String str = jtf.getText().toString();
Client.this.sent(str);
jtf.setText(jtf1.getText().toString()+"say:");

);
this.setTitle("聊天客户端,袭风版");
this.setBounds(200,200,300,400);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setBackground(Color.blue);
this.setVisible(true);


public static void main (String[] args)

System.out.println("===1");
Client cli = new Client("127.168.1.1",3456); //创建一个客户端,并将其连接到指定 IP 地址的指定端口号,其端口号与服务器端一致。与服务器建立连接
System.out.println("===2");
cli.startClient(); //127.0.0.1为本机端口



//
//import java.net.*;
//import java.io.*;
//
///*
// 发送给服务器端
//*/
//class Send implements Runnable
//
// private Socket socket;
// Send(Socket socket)
//
// this.socket = socket;
//
// public void run()
//
// try
//
// BufferedReader bufr =
// new BufferedReader(new InputStreamReader(System.in));
//
// String line = null;
// while((line=bufr.readLine())!=null)
//
// if("886".equals(line))
//
// socket.close();
// break;
//
// byte[] bufString = line.getBytes();
//
// //通过socket对象获取socket流中的输出流对象。
// OutputStream out = socket.getOutputStream();
// out.write(bufString);
//
// InputStream in = socket.getInputStream();
// byte[] buf = new byte[1024];
// int num = in.read(buf);
// String str = new String(buf,0,num);
//
// System.out.println("server:"+str);
//
//
//
//
// catch (Exception e)
//
// System.out.println(e.toString());
//
//
//
//
///*
// 建立服务器
//*/
//class Rece implements Runnable
//
// //1,建立服务端的socket服务。并监听一个端口。以获取客户端发来的数据。
// private ServerSocket serverSocket;
// Rece(ServerSocket serverSocket)
//
// this.serverSocket = serverSocket;
//
// public void run()
//
// try
//
// while(true)
// System.out.println("============4");
// Socket socket = serverSocket.accept();
// System.out.println("============5");
// String ip = socket.getInetAddress().getHostAddress();
// System.out.println("============6");
// System.out.println(ip+"...connected");
// System.out.println("============7");
// BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
// System.out.println("============8");
// String line ="";
// System.out.println("============9");
//
// OutputStream out = socket.getOutputStream();
// out.write("开始".getBytes());
//
// while((line= in.readLine())!=null)
// System.out.println(line);
//
//
//
//
// catch (Exception e)
//
// System.out.println(e.toString());
//
//
//
//
//
//class ChatDemoServer
//
// public static void main(String[] args) throws Exception
//
// //1,建立服务端的socket服务。并监听一个端口。以获取客户端发来的数据。
// System.out.println("========1");
// ServerSocket rece = new ServerSocket(8082);
// rece.close();
// System.out.println("========2");
// new Thread(new Rece(rece)).start();
// System.out.println("========3");
//
//
//
//
//class ChatClient
//
// public static void main(String[] args) throws Exception
//
// //1,建立服务端的socket服务。并监听一个端口。以获取客户端发来的数据。
// //建立客户端socket服务。并去连接指定的服务端。
// Socket send = new Socket("169.254.1.60",10086);
// if(send == null)
// System.out.println("【创建Socket失败!】");
// return;
//
// new Thread(new Send(send)).start();
//
//

import java.net.*;
import java.io.*;
import java.util.*;
//import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
public class Server extends JFrame

/**
* 套接字接口可分为三类:公认端口 注册端口 动态和/或私有端口
套接字,简单的说就是通信的两方的一种约定,用套接字中的相关函数来完成通信过程

*/
private static final long serialVersionUID = 4130666237241201704L;
Container con = null; //容器
JTextArea jta = null; //文本区
ServerSocket ss = null; //初始化服务器套接字
ArrayList al = new ArrayList();//ArrayList容器
Server(int port)
//构造函数
try

ss=new ServerSocket(port); // 创建绑定到特定端口的服务器套接字。

catch(Exception e)

e.printStackTrace();

launchFrame();


public void severStart()
//线程开始
while(true)

try
Socket s = ss.accept(); //侦听并接受到此套接字(port)的连接。
al.add(new ServerR(s));
jta.append("New Client:"+"\n Ip: "+s.getInetAddress()+":"+s.getPort()+"\n" //得到客户端本地地址,端口和客户端数量
+"Clients count:"+al.size()+"\n");

catch(Exception e)

e.printStackTrace();



class ServerR implements Runnable

Socket s = null; //创建新服务线程
ServerR(Socket s)

this.s = s;
new Thread(this).start();//启动新线程

public void sent(String str)
//发送数据流方法
try

DataOutputStream dos = new DataOutputStream(s.getOutputStream()); //从s套接字中读出输出数据流
dos.writeUTF(str); //使用 UTF-8 修改版编码将一个字符串写入基础输出流。

catch(Exception e)

e.printStackTrace();




public void run()

try

DataInputStream dis = new DataInputStream(s.getInputStream());
String str = dis.readUTF(); //读出输入的数据流
while(true)

// System.out.println (str);
Iterator ite = al.iterator(); //生成list迭代器
while(ite.hasNext())
//如果仍有可迭代的元素,返回true
((ServerR)ite.next()).sent(str); //返回(ServerR)的下一个元素,并发送它
//先遍历ServerR中的所有线程

str=dis.readUTF();


catch(Exception e)


try //客户端关闭捕捉
s.close(); //关闭一个相关客户端线程
al.remove(this); //从迭代器指向的集合中移除迭代器返回的最后一个元素
jta.append("A client quit!\nClients count:"+al.size()+"\n"); //统计客户端现有的数量

catch(Exception e2)


e2.printStackTrace();

e.printStackTrace();



public void launchFrame()
//服务器端面板布局
con = this.getContentPane();
jta = new JTextArea();
jta.setEditable(false); //不可编辑文本域
JScrollPane jsp = new JScrollPane(jta,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
con.add(jsp,BorderLayout.CENTER);
this.setTitle("聊天服务端,袭风版");
this.setBounds(200,200,300,400);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);


public static void main (String[] args)

Server s = new Server(3456); //创建服务器S 端口为3456
s.severStart();

参考技术A 用电脑时颈部姿势有问题!专家都推荐让屏幕顶端和你双目平齐,避免颈部劳损,使用电脑时尽量让颈部调整到正常的状态本回答被提问者采纳 参考技术B 访问http服务器?
那老麻烦了,发个请求还得加http头

十万火高分急求一个SHELL脚本,下午2点就要要了

有一个文件夹每天都要生成日志文件……要达到的目的是: 1:把前一天的日志文件复制到另一台计算机的指定文件夹,这个文件夹专门保存日志,但是超过7天的自动删除…… 2:把前一天的日志文件从原文件中删除…… 3:地址目录不知道可以用XX代替…… 4:如果可以请给出代码解释,拜托大家了
补充一下,我是hello world都不会的人直接叫去写FOR循环,所以不要提示,要全代码…全代码啊

#!/bin/bash
mkdir /tmp/netdisk
mount -t cifs -o username=xxx,password=xx \\另一台IP\共享名 /tmp/netdisk
find /xx/xx(日志目录) -ctime 1 |xargs -i cp -Rf /tmp/netdisk
find /tmp/netdisk -ctime +7 |xargs -i rm -rf
find /xx/xx(日志目录) -ctime +1 |xargs -i rm -rf
umount /tmp/netdisk
rm -rf /tmp/netdisk

你测试一下这个脚本,定期执行这个脚本就行了
全部手写的,期待采纳追问

你好,我现在脚本差不多写出来了。但是不是很懂find,用的最笨的方法,根据文件名来的。

但是现在有一个问题。

我在ftp过程中执行删除操作。是删除本地文件还是ftp上的文件呢?谢谢了。你看看我的这张截图,如果今天试了可行的话分就给你了,谢谢了。

可以看出file1到file9,file1_7到file9_7都在本地上有。但是我想先删除FTP上的file1_7到file9_7,再上传本地的file1到9到FTP。最后再删除本地的file1到9.你看对不

追答

其它基本上都没错了,你只有测试一下看看有没有问题
EOF前面可以不加!号
把ftp 段的rm 改成delete

参考技术A 用at 命令每天自动COPY,然后用find 命令删除7天以前的 find 目录 -name 日志名 -ctime +7 -exec rm -r \; 参考技术B 话说二楼的方法可行,或者是你i建立互信机制 就是一个机器建立个公钥,然后给另一个机器私钥,这样用scp就可以实现远程拷贝而无需挂载了。之前尝试用EOF输出密码,不过没成功。

以上是关于高分:求案例代码:java Socket 加请求参数,访问http服务端,并打印返回的数据!的主要内容,如果未能解决你的问题,请参考以下文章

java web问题,解决以后,绝对给你最高分。

java socket服务如何监控客户端链接数,如果方便的话请给代码,急求万分感谢!

高分求软件测试的测试计划与测试用例,(详情如下)

高分求大神解答,java 操作FTP的问题

高分求一个完全信息静态博弈模型的案例,并用博弈理论的基本概念分析这个案例。(复制粘贴勿入)

java中socket网络通信,实现客户端上传文件案例