diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..0e40fe8f57160b43f9ea8e200b1a5d9f91f4aed9
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+
+# Default ignored files
+/workspace.xml
\ No newline at end of file
diff --git a/.idea/.name b/.idea/.name
new file mode 100644
index 0000000000000000000000000000000000000000..b93285816210f90b359d47c5da4f63d99a362113
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+callJvmThreadpool
\ No newline at end of file
diff --git a/.idea/CallJvm.iml b/.idea/CallJvm.iml
new file mode 100644
index 0000000000000000000000000000000000000000..f08604bb65b25149b195f9e9f282f9683a428592
--- /dev/null
+++ b/.idea/CallJvm.iml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000000000000000000000000000000000000..578add888547903256f6cc106882599729267e93
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e8717964c5f3d547f60556a89229dadd9ece95ce
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c8278a2148d8c7114c0a04bdfdbb2c5f2afa8311
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000000000000000000000000000000000000..94a25f7f4cb416c083d265558da75d457237d671
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/callJvmThreadpool/a.out b/callJvmThreadpool/a.out
new file mode 100755
index 0000000000000000000000000000000000000000..6239af60c4dc9142c0d2e8f842b5350d15da7047
Binary files /dev/null and b/callJvmThreadpool/a.out differ
diff --git a/callJvmThreadpool/client b/callJvmThreadpool/client
new file mode 100755
index 0000000000000000000000000000000000000000..404a06723ec4b0c4bed071d850ecca10056748c4
Binary files /dev/null and b/callJvmThreadpool/client differ
diff --git a/callJvmThreadpool/client.cpp b/callJvmThreadpool/client.cpp
index 762975927f829558e7c09962e7a28d5b43d52e23..51a1abe3f736ca2b7524e859a7c41179457e753f 100644
--- a/callJvmThreadpool/client.cpp
+++ b/callJvmThreadpool/client.cpp
@@ -13,15 +13,15 @@
int main()
{
- std::string plainsql, dbname;
- int sock = 0, valread;
+ std::string plainsql, dbname, sendstream;
+ int sock = 0;
struct sockaddr_in serv_addr;
- plainsql = "select * from test;";
- char *psql = (char*)plainsql.data();
+ plainsql = "select * from test";
dbname = "student";
- char *dbn = (char*)dbname.data();
- char split = '$';
+ sendstream = plainsql + "$" + dbname;
+ char *sstr = (char*)sendstream.data();
+ printf("sendstream is %s\n", sstr);
char buffer[1024] = {0};
if((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0)
@@ -46,12 +46,21 @@ int main()
return -1;
}
- send(sock, psql, strlen(psql), 0);
- printf("Hello message: %s sent\n", psql);
- send(sock, reinterpret_cast(split), 1, 0);
- send(sock, dbn, strlen(dbn), 0);
- printf("Talk message: %s send\n", dbn);
+ send(sock, sstr, strlen(sstr), 0);
+ printf("Hello message: %s sent\n", sstr);
- valread = read(sock, buffer, 1024);
+ read(sock, buffer, 1024);
printf("%s\n", buffer);
-}
\ No newline at end of file
+}
+
+int i;
+for(i = 0; i < strlen(buffer); i++)
+{
+if(buffer[i] == '$')
+{
+strncpy(psql, buffer, i);
+strncpy(dbn, buffer + i + 1, strlen(buffer) - i - 1);
+}
+}
+printf("%s\n", psql);
+printf("%s\n", dbn);
diff --git a/callJvmThreadpool/server b/callJvmThreadpool/server
new file mode 100755
index 0000000000000000000000000000000000000000..0839b945bc1dfaca2b665387226ad3d6e2826746
Binary files /dev/null and b/callJvmThreadpool/server differ
diff --git a/callJvmThreadpool/server.cpp b/callJvmThreadpool/server.cpp
index 31ab0f1889e2b1a887734fb82e9bd3886dbe8585..f453079b8caac626f843b02f3dca98074a22861f 100644
--- a/callJvmThreadpool/server.cpp
+++ b/callJvmThreadpool/server.cpp
@@ -1,7 +1,3 @@
-//
-// Created by wanhui on 11/2/19.
-//
-
#include
#include
#include
@@ -9,69 +5,82 @@
#include
#include
#include
+#include
#define PORT 8080
-int main() {
+int main(int argc, char const *argv[])
+{
int server_fd, new_socket, valread;
struct sockaddr_in address;
int opt = 1;
int addrlen = sizeof(address);
char buffer[1024] = {0};
- char *psql = nullptr;
- char *dbn = nullptr;
char *hello = "Hello from server";
// Creating socket file descriptor
- if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0) {
+ if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0)
+ {
perror("socket failed");
exit(EXIT_FAILURE);
}
// Forcefully attaching socket to the port 8080
if (setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR | SO_REUSEPORT,
- &opt, sizeof(opt))) {
+ &opt, sizeof(opt)))
+ {
perror("setsockopt");
exit(EXIT_FAILURE);
}
address.sin_family = AF_INET;
address.sin_addr.s_addr = INADDR_ANY;
- address.sin_port = htons(PORT);
+ address.sin_port = htons( PORT );
// Forcefully attaching socket to the port 8080
- if (bind(server_fd, (struct sockaddr *) &address,
- sizeof(address)) < 0) {
+ if (bind(server_fd, (struct sockaddr *)&address,
+ sizeof(address))<0)
+ {
perror("bind failed");
exit(EXIT_FAILURE);
}
- if (listen(server_fd, 3) < 0) {
+ if (listen(server_fd, 3) < 0)
+ {
perror("listen");
exit(EXIT_FAILURE);
}
- if ((new_socket = accept(server_fd, (struct sockaddr *) &address,
- (socklen_t *) &addrlen)) < 0) {
+ if ((new_socket = accept(server_fd, (struct sockaddr *)&address,
+ (socklen_t*)&addrlen))<0)
+ {
perror("accept");
exit(EXIT_FAILURE);
}
- valread = read(new_socket, buffer, 1024);
- printf("%s\n", buffer);
+ valread = read( new_socket , buffer, 1024);
+ printf("%s\n",buffer );
- int i;
- for(i = 0; i < strlen(buffer); i++)
+ send(new_socket , hello , strlen(hello) , 0 );
+ printf("Hello message sent\n");
+
+ char* psql;
+ char* dbn;
+ char delims[] = "$";
+ char *res = nullptr;
+ std::vector resvec;
+
+ printf("%zu\n", strlen(buffer));
+
+ res = strtok(buffer, delims);
+ while (res != nullptr)
{
- if(buffer[i] == '$')
- {
- strncpy(psql, buffer, i);
- strncpy(dbn, buffer + i + 1, strlen(buffer) - i - 1);
- }
+ resvec.push_back(res);
+ res = strtok(nullptr, delims);
}
+
+ psql = resvec[0];
+ dbn = resvec[1];
printf("%s\n", psql);
printf("%s\n", dbn);
-
- send(new_socket, hello, strlen(hello), 0);
- printf("Hello message sent\n");
return 0;
}
\ No newline at end of file