问题说明:下边的client代码与server代码,当client发出连接后(按钮按下后),服务器端能响应,但server端就是不能打印(显示)client传来的信息
客户端通过一个按钮来进行与服务器端的socket连接
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO 将在此处添加您的处理代码:
Vector vreg=new Vector();
vreg.add(nc.getText());
vreg.add(xm.getText());
vreg.add(xb.getSelectedItem().toString());
vreg.add(ll.getText());
try{
link_server_ip=java.net.InetAddress.getByName("www.abc.net").getHostAddress().toString();
link_sa=new java.net.InetSocketAddress(link_server_ip,java.lang.Integer.parseInt(link_sports)); link_server.connect(link_sa);
link_sosw=new OutputStreamWriter(link_server.getOutputStream());
link_bwout=new BufferedWriter(link_sosw);
String send_s=null;
Iterator itr=vreg.iterator();
while(itr.hasNext())
{
send_s=(String) itr.next();
link_bwout.write(send_s);
link_bwout.flush();
}
}
catch(Exception ex)
{
}
} 服务器端接收代码:
public class Main extends javax.swing.JFrame {
.....
public Main() {
......
waitlink();
}
void waitlink()
{
try
{
ss=new ServerSocket(9091);
servers=ss.accept(); sdis=new BufferedReader(isr=new InputStreamReader(servers.getInputStream()));
String lineStr = null;
while((lineStr=sdis.readLine())!=null)
{ jta1.setText(jta1.getText()+lineStr);
jta1.repaint();
System.out.println(lineStr);
}
}
catch(Exception e)
{
}
}
客户端通过一个按钮来进行与服务器端的socket连接
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO 将在此处添加您的处理代码:
Vector vreg=new Vector();
vreg.add(nc.getText());
vreg.add(xm.getText());
vreg.add(xb.getSelectedItem().toString());
vreg.add(ll.getText());
try{
link_server_ip=java.net.InetAddress.getByName("www.abc.net").getHostAddress().toString();
link_sa=new java.net.InetSocketAddress(link_server_ip,java.lang.Integer.parseInt(link_sports)); link_server.connect(link_sa);
link_sosw=new OutputStreamWriter(link_server.getOutputStream());
link_bwout=new BufferedWriter(link_sosw);
String send_s=null;
Iterator itr=vreg.iterator();
while(itr.hasNext())
{
send_s=(String) itr.next();
link_bwout.write(send_s);
link_bwout.flush();
}
}
catch(Exception ex)
{
}
} 服务器端接收代码:
public class Main extends javax.swing.JFrame {
.....
public Main() {
......
waitlink();
}
void waitlink()
{
try
{
ss=new ServerSocket(9091);
servers=ss.accept(); sdis=new BufferedReader(isr=new InputStreamReader(servers.getInputStream()));
String lineStr = null;
while((lineStr=sdis.readLine())!=null)
{ jta1.setText(jta1.getText()+lineStr);
jta1.repaint();
System.out.println(lineStr);
}
}
catch(Exception e)
{
}
}
解决方案 »
- 如何取小数点前两位并四舍五入?
- 求教多边形继承问题
- 继承问题。。。问题还真是多吖。。郁闷
- "java"编程的信息传递
- 新手送分啦
- 我在运行一个Server和Client程序时出现的错误
- 请教:子类方法问题
- 有人用过 HttpAsyncClient 的post提交吗?为什么总是失败啊?麻烦大家帮忙看看?代码可以直接运行的啊~~~~~~~~~~~~~~~~~~~
- 新手,第一次接触多线程,发现程序运行后所占内存较大,怎样能使一个线程在结束之后立刻释放所有资源?
- 有兴趣的朋友跟我谈谈java中的关键字:static
- [求助]确保字符串是1-100的数,怎么写正则?
- java创建UTF-16编码的文件乱码..似乎从来没有人碰到过这个问题.
楼主【cqandy】截止到2008-07-26 23:02:49的历史汇总数据(不包括此帖):
发帖的总数量:12 发帖的总分数:350 每贴平均分数:29
回帖的总数量:11 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:12 结贴的总分数:350
无满意结贴数:1 无满意结贴分:50
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:8.33 % 无满意结分率:14.29 %
敬礼!
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:168)
at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(StreamDecoder.java:411)
at sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:453)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:183)
at java.io.InputStreamReader.read(InputStreamReader.java:167)
at java.io.BufferedReader.fill(BufferedReader.java:136)
at java.io.BufferedReader.readLine(BufferedReader.java:299)
at java.io.BufferedReader.readLine(BufferedReader.java:362)
at testsocket.Main.waitlink(Main.java:51)
at testsocket.Main.<init>(Main.java:36)
at testsocket.Main$2.run(Main.java:165)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:234)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
老师请指点呀!!!
import java.net.*;
import java.io.*;
import java.util.*;
import java.lang.*;
import javax.swing.*;public class Main extends javax.swing.JFrame { private ServerSocket ss; private Socket servers; java.io.BufferedReader sdis=null; java.io.InputStreamReader isr=null; java.io.BufferedWriter bw=null;//输出流
java.io.OutputStreamWriter osw=null;//
/** Creates new form Main */
public Main() {
initComponents();
waitlink();
}
void waitlink()
{
try
{
ss=new ServerSocket(9091);
servers=ss.accept(); sdis=new BufferedReader(isr=new InputStreamReader(servers.getInputStream())); //bw=new BufferedWriter(osw=new OutputStreamWriter(servers.getOutputStream()));
String lineStr = null;
while((lineStr=sdis.readLine())!=null)
{ jta1.setText(jta1.getText()+lineStr);
jta1.repaint();
System.out.println(lineStr);
}
//bw.write("hello");
}
catch(Exception e)
{
e.printStackTrace();
}
}
private void initComponents() {
...}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO 将在此处添加您的处理代码:
try
{
bw=new BufferedWriter(osw=new OutputStreamWriter(servers.getOutputStream()));
bw.write(jTextField1.getText());
}
catch(Exception e)
{
}
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Main().setVisible(true);
}
});
}
// 变量声明 - 不进行修改
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextArea jta1;
// 变量声明结束
}
package hhchat;
import java.io.*;
import java.net.*;
import java.sql.*;
import java.util.Iterator;
import java.util.Vector;
import com.microsoft.jdbc.sqlserver.*;public class hhReg extends javax.swing.JFrame {
/** Creates new form hhReg */
Socket link_server=new Socket();
String link_sports="9091";
java.net.SocketAddress link_sa=null;
BufferedWriter link_bwout=null;
BufferedReader link_brin=null;
java.io.InputStreamReader link_sisr=null;
java.io.OutputStreamWriter link_sosw=null;
String link_server_ip=null;
public hhReg() {
initComponents();
} // <editor-fold defaultstate="collapsed" desc=" 生成的代码 ">
private void initComponents() {
...
} private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO 将在此处添加您的处理代码:
Vector vreg=new Vector(); vreg.add(nc.getText());
vreg.add(xm.getText());
vreg.add(xb.getSelectedItem().toString());
vreg.add(ll.getText());
try{
link_server_ip=java.net.InetAddress.getByName("www.abc.net").getHostAddress().toString();
link_sa=new java.net.InetSocketAddress(link_server_ip,java.lang.Integer.parseInt(link_sports)); link_server.connect(link_sa);
link_sosw=new OutputStreamWriter(link_server.getOutputStream());
link_bwout=new BufferedWriter(link_sosw);
String send_s=null;
Iterator itr=vreg.iterator();
while(itr.hasNext())
{
send_s=(String) itr.next();
link_bwout.write(send_s);
link_bwout.flush();
}
}
catch(Exception ex)
{
ex.printStackTrace();
} }
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new hhReg().setVisible(true);
}
});
}
// 变量声明 - 不进行修改
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JTextField ll;
private javax.swing.JTextField nc;
private javax.swing.JComboBox xb;
private javax.swing.JTextField xm;
// 变量声明结束
}
{
try
{
ss=new ServerSocket(9091);
servers=ss.accept(); sdis=new BufferedReader(isr=new InputStreamReader(servers.getInputStream())); //bw=new BufferedWriter(osw=new OutputStreamWriter(servers.getOutputStream()));
String lineStr = null;
while((lineStr=sdis.readLine())!=null)
{ jta1.setText(jta1.getText()+lineStr);
jta1.repaint();
System.out.println(lineStr);
}
ss.close();
//bw.write("hello");
}
catch(Exception e)
{
e.printStackTrace();
}
}