Server
// udpserver.cpp
#include <stdio.h>
#include <winsock.h>
int main()
{
WSADATA wsaData;
SOCKET s;
SOCKADDR_IN addrin;
SOCKADDR_IN from;
int fromlen;
int nRtn;
u_short port;
char szBuf[256];
printf("ポート---");
gets(szBuf);
port = atoi(szBuf);
if (WSAStartup(MAKEWORD(1, 1), &wsaData) != 0) {
perror("WSAStartup Error\n");
return -1;
}
s = socket(AF_INET, SOCK_DGRAM, 0);
if (s < 0) {
perror("socket失敗\n");
WSACleanup();
return -2;
}
memset(&addrin, 0, sizeof(addrin));
addrin.sin_port = htons(port);
addrin.sin_family = AF_INET;
addrin.sin_addr.s_addr = htonl(INADDR_ANY);
nRtn = bind(s, (LPSOCKADDR)&addrin, (int)sizeof(addrin));
if (nRtn == SOCKET_ERROR) {
perror("bindエラーです\n");
closesocket(s);
WSACleanup();
return -3;
}
while (1) {
fromlen = (int)sizeof(from);
nRtn = recvfrom(s,
szBuf,
(int)sizeof(szBuf) - 1,
0,
(SOCKADDR *)&from,
&fromlen);
if (nRtn == SOCKET_ERROR) {
perror("recvformエラーです\n");
closesocket(s);
WSACleanup();
return -4;
}
szBuf[nRtn] = '\0';
if (strcmp(szBuf, "c_end") == 0) {
printf("サーバーを終了します\n");
break;
}
printf("%s>%s\n", inet_ntoa(from.sin_addr), szBuf);
}
closesocket(s);
WSACleanup();
printf("終了です\n");
return 0;
}
CLIENT
// udpclient.cpp
#include <stdio.h>
#include <winsock2.h>
#include <conio.h>
int main()
{
WSADATA wsaData;
SOCKET s;
SOCKADDR_IN addrin;
HOSTENT *lpHostEnt;
unsigned int addr;
int nRtn, nNo = 5;
u_short port;
char szBuf[1024], szServer[64];
printf("ポート---");
gets(szBuf);
port = atoi(szBuf);
printf("サーバー---");
gets(szServer);
nRtn = WSAStartup(MAKEWORD(1,1), &wsaData);
if (nRtn != 0) {
perror("WSAStartupエラーです\n");
return -1;
}
s = socket(AF_INET, SOCK_DGRAM, 0);
if (s < 0) {
perror("ソケットエラーです\n");
WSACleanup();
return -2;
}
lpHostEnt = gethostbyname(szServer);
if (lpHostEnt == NULL) {
addr = inet_addr(szServer);
lpHostEnt = gethostbyaddr((char *)&addr, 4, AF_INET);
if (lpHostEnt == NULL) {
perror("サーバを特定できません\n");
_getch();
return -3;
}
}
memset(&addrin, 0, sizeof(addrin));
memcpy(&(addrin.sin_addr),
lpHostEnt->h_addr_list[0],
lpHostEnt->h_length);
addrin.sin_port = htons(port);
addrin.sin_family = AF_INET;
//addrin.sin_addr.s_addr = *((unsigned long *)lpHostEnt->h_addr);
while(1) {
printf("送信---");
gets(szBuf);
nRtn = sendto(s, szBuf, (int)strlen(szBuf) + 1, 0,
(LPSOCKADDR)&addrin, sizeof(addrin));
if (nRtn != (int)strlen(szBuf) + 1) {
perror("送信エラーです\n");
closesocket(s);
WSACleanup();
return -4;
}
if (strcmp(szBuf, "cend") == 0) {
printf("終了します\n");
_getch();
break;
}
}
closesocket(s);
WSACleanup();
return 0;
}
猫→神戸
といっても特に猫が好きなわけではありません。嫌いでもないけど。
高校時代、NHKを何気に見ているとスペイン語講座が始まりました。
そのときにスペイン文化の紹介でスペインの同様を番組内でギターで演奏しておりました。
タイトルは猫ちゃんみたいな感じだったと思う。
それを聞いてすっかりスペインの魅力に取り付かれてしまい、
その番組の講師をしている先生のいる大学に入学しました。ギターも買いました。
事情があってその先生がいる学部への入学ではなかったし、
私の専攻ではその先生の授業の選択も出来なかったですが、
それでもいつかは先生の授業を受けたいと思っていました。
ある日、学校の前で信号待ちをしている先生を見かけました。
広島の片田舎からやってきてついにこんな間近まで来ることが出来ました。
しかし感激しているうちに先生は信号を渡っていってしまいました。
そりゃ青になったら行っちゃうでしょうね。
今はスペイン語もすっかり忘れて、まったく関係ない仕事をしています。
人づてになんとかコネを作って研究室に押しかけてやろうなんて考えることもできない
田舎音の青二才でした。
そして私にとって大学とはただの思い出となりました。
神戸での数々の出会いはすばらしいものでしたが。
時々楽器を演奏していることくらいがその時の私の名残。
あの時、声をかけるほどの行動力があれば人生は変わっていたでしょう。
今の人生で得たものも得られなかったかもしれないでしょう。
あ~。ブログってこんな感じじゃないよね。
そのうち文章も内容もこなれてくるでしょう。