会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132838个问题

老师,我的输出结果  为什么没有服务器收到了!

图片.png

图片.png

以下是服务器端的代码:

package ClientServer;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {

    public static void main(String[] args) throws IOException {
        System.out.println("--------服务器已启动--------");
        /**
         * 创建ServerSocket对象
         */
        ServerSocket server = new ServerSocket(8877);
        /**
         * 监听是否有客户端连接
         */
        Socket socket = server.accept();
        /**
         * 获取输入流数据
         */
        DataInputStream dis = new DataInputStream(socket.getInputStream());
        DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
        while(true) {
            String str = dis.readUTF();
            System.out.println("客户端发送的数据为:"+str);
            /**
             * 获取输出流响应客户端的请求
             */
            dos.writeUTF("服务器端收到了:"+str);
        }
        /**
         * 关闭流
         */
        //CloseUtil.closeAll(dos,dis,socket);
    }

}

以下为客户端代码:

package ClientServer;

import java.io.DataInputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;

public class ChatClient {
    public static void main(String[] args) throws UnknownHostException, IOException {
        /**
         * 创建Socket对象
         */
        Socket client = new Socket("localhost",8877);
        /**
         * 创建发送的线程类对象
         */
        Send send = new Send(client);
        /**
         * 创建接收的线程类对象
         */
        Receive receive = new Receive(client);
        /**
         * 创建Thread类并启动线程
         */
        new Thread(send).start();
        new Thread(receive).start();
        
    }
}


JAVA 全系列/第二阶段:JAVA 基础深化和提高/网络编程(旧) 3137楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/异常机制 3138楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 3139楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 3140楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 3143楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 3144楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 3145楼

Http_server7.

老师你好,附件是我按照视频敲得代码,但是不同浏览器打开html文档,并输入账号和密码的出的结果没有问题,但是Server文件控制台输出的内容却不一样,请问一下老师什么问题,一下三张图片依次是IE浏览器/火狐浏览器/搜狗浏览器

image.png










image.png













image.png





JAVA 全系列/第二阶段:JAVA 基础深化和提高/手写服务器项目(旧) 3146楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/多线程技术(旧) 3148楼

你好,老师,我是按照视频中的代码敲得,但是最后在浏览器没有显示登陆成功的字样

package com.hy.test;
/***
 * 在html中使用post方法,通过程序然后获取输入的信息,并且对web浏览器做出回应
 */

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.net.ServerSocket;
import java.net.Socket;



public class Server3 {
	public static void main(String[] args) {
		String BLANK="\n";
		String CRLF="\r\n";//换行
		//1创建ServerSocket对象
		ServerSocket server=null;
		//2监听是否有客户端发来请求
		Socket client=null;
		//3创建Socket对象	
				//4创建输入流
		InputStream is=null;
		try {
			server = new ServerSocket(8080);	
			client = server.accept();
			is=client.getInputStream();
			byte[] buf=new byte[10240];
			int len=is.read(buf);
			System.out.println(new String(buf,0,len));
			/***
			 * 以下代码是对浏览器的请求做出响应
			 */
			StringBuilder sb=new StringBuilder();
			StringBuilder sbContent=new StringBuilder();//响应的文本
			sbContent.append("<html><head><title>响应结果</title></head>");
			sbContent.append("<body>登陆成功</body></html>");
			//1拼接像迎头
			sb.append("HTTP/1.1").append(BLANK).append(200).append(BLANK).append("ok");
			sb.append(CRLF);//换行
			sb.append("Content-Type: text/html;charset=utf-8");
			sb.append(CRLF);
			sb.append("Content-Length:").append(sbContent.toString().getBytes().length).append(CRLF);//换行,代表响应头和相应正文之间的空行
			sb.append(sbContent);
			
			//通过流输出
			BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(client.getOutputStream(),"utf-8"));
			bw.write(sb.toString());
			bw.flush();
			bw.close();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
		//关闭流
		try {
			IOClose.closeAll(is,client,server);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		}
	}

	private static InputStream InputStream(InputStream inputStream) {
		// TODO Auto-generated method stub
		return null;
	}
}

html代码

<html>
<head>
<title>我的第一个html</title>
</head>
<body>
<h1>hello world</h1>
<form action="http://localhost:8080/index.html" method="post">
<p>用户名:<input type="text" id="uname" name="username" /></p>
<p>密码:<input type="password" id="pwd" name="password" /></p>
<p><input type="submit" value="登陆"/></p>
</form>
</body>
</html>


image.png


 浏览器没有显示,但是eclipse控制台输出的正常的,所以想问一下是什么原因,感谢

image.png

JAVA 全系列/第二阶段:JAVA 基础深化和提高/手写服务器项目(旧) 3149楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/IO 流技术(旧) 3150楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637