java网络编程应该怎样在客户端和服务器间实现通信?

java网络编程应该怎样在客户端和服务器间实现通信?,第1张

以前写的,照贴了。。。服务器端:import javaawt;\x0d\import javaawteventWindowAdapter;\x0d\import javaawteventWindowEvent;\x0d\import javaio;\x0d\import javanet;/6、 采用UDP协议,编写一个Java网络应用程序,该应用分服务器端程序和客户端程序两部分。\x0d\ 客户端指定一个服务器上的文件名,让服务器发回该文件的内容,或者提示文件不存在。\x0d\ (20分)(服务端程序和客户端程序分别命名为Serverjava和Clientjava)/\x0d\public class N4BT6 extends Frame\x0d\{\x0d\DatagramSocket socket ;\x0d\DatagramPacket packet ;byte[] buf ;\x0d\File file ;\x0d\FileInputStream input;\x0d\String message = "该文件不存在";\x0d\TextArea text;\x0d\public N4BT6(String title)\x0d\{\x0d\super(title);\x0d\text = new TextArea(6,4);\x0d\add(text);\x0d\setSize(400, 300);\x0d\setVisible(true);\x0d\addWindowListener(new WindowAdapter()\x0d\{\x0d\public void windowClosing(WindowEvent e)\x0d\{\x0d\dispose();\x0d\}\x0d\});\x0d\\x0d\buf = new byte[1024];\x0d\try\x0d\{\x0d\socket = new DatagramSocket(1230);\x0d\packet = new DatagramPacket(buf, buflength);\x0d\socketreceive(packet);\x0d\file = new File(new String(packetgetData()));\x0d\socket = new DatagramSocket();\x0d\} \x0d\catch (Exception e)\x0d\{eprintStackTrace();\x0d\}\x0d\\x0d\if(fileexists())\x0d\{\x0d\try\x0d\{\x0d\buf = new byte[(int)filelength()];\x0d\packet = new DatagramPacket(buf,buflength,InetAddressgetLocalHost(),1234);\x0d\input = new FileInputStream(file);\x0d\inputread(buf);\x0d\socketsend(packet);\x0d\}\x0d\catch (IOException e) \x0d\{\x0d\eprintStackTrace();\x0d\}\x0d\}\x0d\else\x0d\{\x0d\try\x0d\{\x0d\packet = new DatagramPacket(messagegetBytes(),messagegetBytes()length,\x0d\InetAddressgetLocalHost(),1234);\x0d\socketsend(packet);\x0d\}\x0d\catch (Exception e) \x0d\{\x0d\eprintStackTrace();\x0d\}\x0d\}\x0d\\x0d\}\x0d\public static void main(String[] args)\x0d\{\x0d\new N4BT6("Server");\x0d\}\x0d\}\x0d\客户端:import javaawt;\x0d\import javaawtevent;\x0d\import javanetDatagramPacket;\x0d\import javanetDatagramSocket;\x0d\import javanetInetAddress;public class N4BT6_2 extends Frame\x0d\{\x0d\TextArea text;\x0d\String message = "Qtxt";\x0d\DatagramSocket socket ;\x0d\DatagramPacket packet;\x0d\byte[] buf;\x0d\public N4BT6_2(String title)\x0d\{\x0d\super(title);\x0d\text = new TextArea(6,4);\x0d\add(text);\x0d\setSize(400, 300);\x0d\setVisible(true);\x0d\addWindowListener(new WindowAdapter()\x0d\{\x0d\public void windowClosing(WindowEvent e)\x0d\{\x0d\dispose();\x0d\}\x0d\});\x0d\try\x0d\{\x0d\\x0d\socket = new DatagramSocket();\x0d\packet = new DatagramPacket(messagegetBytes(),messagegetBytes()length,\x0d\InetAddressgetLocalHost(),1230);\x0d\socketsend(packet);\x0d\}\x0d\catch (Exception e) \x0d\{\x0d\eprintStackTrace();\x0d\}\x0d\\x0d\try\x0d\{\x0d\buf = new byte[1024];\x0d\socket = new DatagramSocket(1234);\x0d\packet = new DatagramPacket(buf,buflength);\x0d\socketreceive(packet);\x0d\textappend(new String(buf));\x0d\}\x0d\catch (Exception e) \x0d\{\x0d\eprintStackTrace();\x0d\}\x0d\}\x0d\public static void main(String[] args)\x0d\{\x0d\new N4BT6_2("Client");\x0d\}\x0d\}

这是因为文件路径不对造成的,解决方法如下:

1、首先pro文件配置:Qt网络功能需要在pro文件增加网络库。

2、QTcpServer服务端建立的方法代码,如下图所示。

3、QTcpServer当有新客户端连接时,会发出QTcpServer::newConnection的信号方法代码。

4、客户端为主动连接方不需要监听,直接建立QTcpSocket代码。

5、最后通过connectToHost连接指定ip和端口,将socket的连接成功的信号与对应槽连接,当连接成功可以将自定义的标记位置为true。

char

buff2[102410];

int

receiveLen;

/调用accept函数,等待客户端的连接/

client_fd=accept(sockfd,(struct

sockaddr

)&client_sockaddr,&sin_size

/调用recv函数接收客户端的请求/

recvbytes=recv(client_fd,buf,BUFFER_SIZE,0)

typedef

int

(WINAPI

ICEPUB_TCPSENDANDRECEIVETEXT)(char

sendBuff,

int

sendBuffLen,char

recvBuff,int

recvMaxLen,char

serverIP,int

serverPort);

ICEPUB_TCPSENDANDRECEIVETEXT

icePub_tcpSendAndReceiveText

=

0;

HINSTANCE

hDLLDrv

=

LoadLibrary

("icePubDlldll");

if(hDLLDrv)

{

icePub_tcpSendAndReceiveText=(ICEPUB_TCPSENDANDRECEIVETEXT

)

GetProcAddress

(hDLLDrv,"icePub_tcpSendAndReceiveText");

}

if(icePub_tcpSendAndReceiveText)

receiveLen=icePub_tcpSendAndReceiveText(buf,recvbytes),buff2,102410,"19216812",8000);

if(hDLLDrv)

FreeLibrary(hDLLDrv);

AfxMessageBox

(buff2);

1、unix/linux网络编程是一类编程技术(一般指socket相关的编程)。

2、unix/linux服务器是一种服务系统(它是指向客户端提供某种服务的一套应用系统,如ftp服务器、http服务器等)。

3、unix/linux服务器的开发(一套应用系统的开发)通常要用到unix/linux网络编程技术。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » java网络编程应该怎样在客户端和服务器间实现通信?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情