类型:转载 责任编辑:asp 日期:2007/03/01
是server和client的socket通信问题,我没有调试 同过,谁调同了 给800分
//server
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
public class mysocketserver
{
public static void main(string[] args)
{
serverservice myserver = new serverservice(8000,10);
}
}
class servicethread extends frame implements runnable
{
serverservice fatherlistener;
socket connectedclient;
thread connectthread;
panel listenerpanel;
textarea servermeg;
public servicethread(serverservice sv,socket s)
{
fatherlistener = sv;
connectedclient = s;
connectthread = new thread(this);
settitle("answer client");
setlayout(new borderlayout());
servermeg = new textarea(10,50);
add("center",servermeg);
setresizable(false);
pack();
show();
inetaddress clientaddress = connectedclient.getinetaddress();
servermeg.appendtext("client connected" + "form\n" + clientaddress.tostring() +".\n");
}
public void run()
{
try
{
datainputstream in = new datainputstream(new bufferedinputstream(connectedclient.getinputstream()));
printstream out = new printstream(new bufferedoutputstream(connectedclient.getoutputstream()));
out.println("hello!wellcome connent to our server! \r");
out.flush();
string s = in.readline();
while (! s.equals("bye"))
{
servermeg.appendtext("clientêäèëðåï¢îª:\n"+ s);
s = in.readline();
}
connectedclient.close();
}
catch(exception e){}
fatherlistener.addmeg("client" + "closed" + "\n");
dispose();
}
}
class serverservice extends frame
{
serversocket m_slistener;
textarea listenermeg;
public serverservice(int port,int count)
{
try
{
m_slistener = new serversocket(port,count);
settitle("server listener");
this.addwindowlistener(new winadpt());
setlayout(new borderlayout());
add("center",listenermeg);
setresizable(false);
pack();
show();
while(true)
{
socket connected = m_slistener.accept();
inetaddress clientaddress = connected.getinetaddress();
listenermeg.appendtext("client" + "connected" + "form \n" + clientaddress.tostring() + ".\n");
servicethread myst = new servicethread(this,connected);
myst.connectthread.start();
}
}
catch(ioexception e){}
}
public void addmeg(string s)
{
listenermeg.appendtext(s);
}
}
class winadpt extends windowadapter
{
public void windowclosing(windowevent e)
{
((frame)e.getwindow()).dispose();
system.exit(0);
}
}
*************************************************************
//client
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
public class myclient extends frame implements actionlistener
{
socket clientsocket;
printstream os;
datainputstream is;
string s;
label mylabel = new label("welcome");
textarea textarea;
button mybutton = new button("send");
public myclient()
{
settitle("client window");
setlayout(new borderlayout());
this.addwindowlistener(new winadptclient(this));
mybutton.addactionlistener(this);
textarea = new textarea(29,50);
add("north",mylabel);
add("south",mybutton);
add("client",textarea);
setresizable(false);
pack();
show();
connect();
}
public void connect()
{
try
{
clientsocket = new socket("qq",8000);
os = new printstream(new bufferedoutputstream(clientsocket.getoutputstream()));
is = new datainputstream(new bufferedinputstream(clientsocket.getinputstream()));
s = is.readline();
textarea.appendtext(s+"\n");
}
catch(exception e){}
}
public void actionperformed(actionevent e)
{
if(e.getsource()==mybutton)
{
//try
{
os.print(textarea.gettext());
os.flush();
}
// catch(exception e){}
}
}
public static void main(string args[])
{
new myclient();
}
class winadptclient extends windowadapter
{
myclient m_parent;
winadptclient(myclient p)
{
m_parent = p;
}
public void windowclosing(windowevent e)
{
try
{
m_parent.os.println("bye");
m_parent.os.flush();
m_parent.is.close();
m_parent.os.close();
m_parent.clientsocket.close();
m_parent.dispose();
system.exit(0);
}
catch(exception ex){}
}
}
}
************************************
谢谢各位了
推荐阅读
1.mysocketserver中servicethread 类textarea listenermeg=new textarea();
2.myclient 中add("client",textarea);改为add(textarea);
3.clientsocket = new socket("qq",8000); qq换成你的ip或你的主机名
以上在俺机子上运行通过
mysocketserver中servicethread 类textarea listenermeg=new textarea();
myclient 中add("client",textarea);改为add(textarea);
clientsocket = new socket("qq",8000); qq换成你的ip或你的主机名
//server
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
public class mysocketserver
{
public static void main(string[] args)
{
serverservice myserver = new serverservice(8000,10);
}
}
class servicethread extends frame implements runnable
{
serverservice fatherlistener;
socket connectedclient;
thread connectthread;
panel listenerpanel;
textarea servermeg;
public servicethread(serverservice sv,socket s)
{
fatherlistener = sv;
connectedclient = s;
connectthread = new thread(this);
settitle("fabiao client");
setlayout(new borderlayout());
servermeg = new textarea(10,50);
add("center",servermeg);
setresizable(false);
pack();
show();
inetaddress clientaddress = connectedclient.getinetaddress();
servermeg.appendtext("client connected" + "form\n" + clientaddress.tostring() +".\n");
}
public void run()
{
try
{
datainputstream in = new datainputstream(new bufferedinputstream(connectedclient.getinputstream()));
printstream out = new printstream(new bufferedoutputstream(connectedclient.getoutputstream()));
out.println("hello!wellcome connent to our server! \r");
out.flush();
string s = in.readline();
while (! s.equals("bye"))
{
servermeg.appendtext("clientêäèëðåï¢îª:\n"+ s);
s = in.readline();
}
connectedclient.close();
}
catch(exception e){}
fatherlistener.addmeg("client" + "closed" + "\n");
dispose();
}
}
class serverservice extends frame
{
serversocket m_slistener;
textarea listenermeg = new textarea();;
public serverservice(int port,int count)
{
try
{
m_slistener = new serversocket(port,count);
settitle("server listener");
this.addwindowlistener(new winadpt());
setlayout(new borderlayout());
add("center",listenermeg);
setresizable(false);
pack();
show();
while(true)
{
socket connected = m_slistener.accept();
inetaddress clientaddress = connected.getinetaddress();
listenermeg.appendtext("client" + "connected" + "form \n" + clientaddress.tostring() + ".\n");
servicethread myst = new servicethread(this,connected);
myst.connectthread.start();
}
}
catch(ioexception e){}
}
public void addmeg(string s)
{
listenermeg.appendtext(s);
}
}
class winadpt extends windowadapter
{
public void windowclosing(windowevent e)
{
((frame)e.getwindow()).dispose();
system.exit(0);
}
}
老兄速度好快呢 555555 我刚刚找到想说打上去.....:<
这个程序还好的 但是
我还是喜欢 os = new printwriter (clientsocket.getoutputstream());
is = new bufferedreader(new inputstreamreader(clientsocket.getinputstream()));